基于颜色特征图像检索源代码c内容摘要:
Dlg::OnShowIm() { CString imagefilepath = strfile。 //if (imagefilepath = 39。 39。 ) {AfxMessageBox(请选择一幅关键图 )。 return。 } CalculateColor(imagefilepath)。 HistogramShow(IDC_DLG_HIST_SHOW)。 } //计算颜色直方图 void CImageRetrievalDlg::CalculateColor(CString pathfile) { CBitmap hbmp。 HBITMAP hbitmap。 int R,G,B,H,S,V。 int i,j。 hbitmap=(HBITMAP)::LoadImage (::AfxGetInstanceHandle(),pathfile, IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION)。 (hbitmap)。 BITMAP bm。 (amp。 bm)。 CDC dcMem。 (GetDC())。 (hbmp)。 int width=。 int height=。 COLORREF clr。 //定义一个 COLORREF结构,因为提取的象素点的颜色是以 RGB形式表示的 int x,y。 for(int fda=0。 fda4。 fda++) for(int sda=0。 sda4。 sda++) for(int tda=0。 tda256。 tda++){ Ha[fda][sda][tda]=0。 } for(int fdb=0。 fdb4。 fdb++) for(int sdb=0。 sdb4。 sdb++) for(int tdb=0。 tdb256。 tdb++){ Sa[fdb][sdb][tdb]=0。 } for(int fdc=0。 fdc4。 fdc++) for(int sdc=0。 sdc4。 sdc++) for(int tdc=0。 tdc256。 tdc++){ Va[fdc][sdc][tdc]=0。 } for( i=0。 i4。 i++) for( j=0。 j4。 j++) for(int k=0。 kwidth。 k++) for(int l=0。 lheight。 l++){ x=j*width+l。 y=i*height+k。 clr=(x,y)。 R=GetRValue(clr)。 G=GetGValue(clr)。 B=GetBValue(clr)。 //RGB转 HSV int maxp=max(R,G)。 int max=max(maxp,B)。 int minp=min(R,G)。 int min=min(minp,B)。 if(max!=0) {S=(maxmin)/max。 } else {S=0。 H=1。 break。 } //饱和度 if(max==min) {break。 } if (R == max) H = (GB)/(maxmin)。 else if (G == max) H = 2 + (BR)/(maxmin)。 else H = 4 + (RG)/(maxmin)。 H = H * 60。 if (H 0) H = H + 360。 //色彩度 V=max。 //亮度 Ha[i][j][H]++。 Sa[i][j][S]++。 Va[i][j][V]++。 } } //绘置直方图 void CImageRetrievalDlg::HistogramShow(int idc) { int m。 CWnd* pWnd = GetDlgItem(idc)。 // 获取绘制直方图文本框的标签 // 获取设备上下文 CDC* pDC = pWndGetDC()。 pWndInvalidate()。 pWndUpdateWindow()。 pDCRectangle(0, 0, 367,338)。 CPen* pPenRed = new CPen。 // 创建画笔对象 pPenRedCreatePen(PS_SOLID, 1, RGB(255,0,0))。 // 创建红色画笔(用于绘制坐标轴) CPen* pOldPen = pDCSelectObject(pPenRed)。 // 选入红色画笔,并保存以前的画笔 pDCMoveTo(40,40)。 // 绘制坐标轴 pDCLineTo(40, 300)。 // 绘制垂直轴 pDCLineTo(340, 300)。 // 绘制水平轴 // 绘制 X轴刻度值 CString strTemp。 (0)。 pDCTextOut(40, 303, strTemp)。 (50)。 pDCTextOut(90, 303, strTemp)。 (100)。 pDCTextOut(140, 303, strTemp)。 (150)。 pDCTextOut(190, 303, strTemp)。 (200)。 pDCTextOut(240, 303, strTemp)。 (255)。 pDCTextOut(295, 303, strTemp)。 // 绘制 X轴刻度 for (m = 0。 m 256。 m += 5) { if ((m amp。 1) == 0) { // 10的倍数 pDCMoveTo(m + 40, 303)。 pDCLineTo(m + 40, 307)。 } else { // 5的奇数倍数 pDCMoveTo(m + 40, 303)。 pDCLineTo(m + 40, 310)。 } } // 绘制 X轴箭头 pDCMoveTo(335,295)。 pDCLineTo(340,300)。 pDCLineTo(335,305)。 // 绘制 Y轴箭头 pDCMoveTo(40,40)。 pDCLineTo(35,45)。 pDCMoveTo(40,40)。 pDCLineTo(45,45)。 LONG lMaxCount = 0。 // 直方图中最大计数值 // 计算最大计数值 for (m = 0。 m = 255。 m ++) { // 判断是否大于当前最大值 if (Ha[1][1][m] lMaxCount) { // 更新最大值 lMaxCount = Ha[1][1][m]。 } } pDCTextOut(10, 150, hue)。 CPen* pPenBlue = new CPen。 // 声名画笔对象 pPenBlueCreatePen(PS_SOLID, 1, RGB(0,0,255))。 // 创建蓝色画笔(用于绘制直方图) pDCSelectObject(pPenBlue)。 // 选入蓝色画笔 // 判断是否存在计数值 if(lMaxCount 0){ // 绘制直方图 for (m =。基于颜色特征图像检索源代码c
相关推荐
轻型井点降水计算图 降低水位深度: S=+= 含水层厚度: H=+= 等效半径: r0=(+= 涌水量计算公式如下: 经计算得: h=; hm=; R=; Q=计算单井出水量 q=120 4=计算井点管数量 n=Q/q=,取 22根 井点间距 D D=L/n=2(+)/= 考虑到井管间距应符合 的模数,并且四角井管应加密,最后可取井点管间距在四周中间部分为 ,角部分适当加密至。 抽水设备选择
助收入” 等 科目。 4. 接受捐赠的固定资产,其成本 比照同类或类似物资的 市场价格或有关凭据注明的金额 加上相关税费 确定。 接受捐赠的不需安装的固定资产, 按照 确定的成本,借记本科目,贷记“ 固定基金 — — 固定资产占用”科目 ; 按照 发生的相关税费, 借 22 记“待摊支出” 等 科目, 贷记“银行存款” 等 科目。 (二)与固定资产有关的更新改造等后续支出,应分别 按照 以下情况
每人一本价值 30 元的读物,共 300 元; 二等奖1 组 , 每人一本价值 25 元的读物,共 250 元; 三等奖 2组,每人一本价值 20 元的读物,共 200 元; 我最喜欢的方案(观众投票决定),最佳团队奖 3 个 七、 后期工作: 把比赛的优秀作品汇编成册,印发给各部门参阅。 八、 活动时间表: 10 月 25 日前: 校会各部门就部门内部参赛人员进行随机编号,并于 11 月
定一 下参会人员的级别范围,如科级以上或者处级以上等,不论你是管理人员,还是其他专业人士,只要满足相应的级别要求,都必须参加,如果不清楚自己是否符合参会条件的话,可以先去问一问上司。 伴随着企业的发展,除管理层之外,也涌现出技术、营销、制造、采购、财务以及人力资源等方面的专业人士。 和唯一的行政称谓比起来,叠加式的头衔,已经进步了许多,至少承认了专业人士的基本地位
,成为众多企业学习的典范。 随着全球经济一体化的迅速发展和国家产业结构调整及经济增长方式的转变,华为在基于企业文化的团队建设上也面临一些难题和不足,给企业的发展带来了巨大的挑战。 如何克服内外部环境变化的影响与难题,成了企业可持续发展急需解决的问题。 研究办法 以团队建设理论等为理论支撑,结合华为技术有限公司实 2 例,剖析华为的团队建设现状,分享华为在团队建设方面的优势,提出了目前华