OpenCv 获取某一区域的RGB平均值
来源:互联网 发布:microsoft软件有哪些 编辑:程序博客网 时间:2024/05/29 19:05
OpenCv 获取某一区域的RGB平均值
最早的想法是通过cvGet2D或者直接访问ImageData获取ROI中的每个点的RGB值从而获得平均值 代码如下:
int cnt = (m_ROI[i][j][1].x - m_ROI[i][j][0].x)*(m_ROI[i][j][1].y - m_ROI[i][j][0].y); for (int n = m_ROI[i][j][0].x; n < m_ROI[i][j][1].x; n++) for (int m = m_ROI[i][j][0].y; m < m_ROI[i][j][1].y; m++) { //CvScalar s = cvGet2D(m_pInputImage, n, m); //m_Color[i][j].B += s.val[0]; //m_Color[i][j].G += s.val[1]; //m_Color[i][j].R += s.val[2]; m_RGBColor[i][j][0] += m_pInputImage->imageData[m*m_pInputImage->widthStep + 3 * n + 0]; m_RGBColor[i][j][1] += m_pInputImage->imageData[m*m_pInputImage->widthStep + 3 * n + 1]; m_RGBColor[i][j][2] += m_pInputImage->imageData[m*m_pInputImage->widthStep + 3 * n + 2]; }
测试后发现这一方法又笨又不好用;
后来想到一个方法,新建个图片,把ROI复制到新图片中,再使用cvAvg获取各个通道的平均值即可。
IplImage* pBlock; pBlock = cvCreateImage(cvSize((m_ROI[i][j][1].x - m_ROI[i][j][0].x), (m_ROI[i][j][1].y - m_ROI[i][j][0].y)), 8, 3); cvResetImageROI(m_pInputImage); cvSetImageROI(m_pInputImage, cvRect(m_ROI[i][j][0].x, m_ROI[i][j][0].y, (m_ROI[i][j][1].x - m_ROI[i][j][0].x), (m_ROI[i][j][1].y - m_ROI[i][j][0].y))); cvCopy(m_pInputImage, pBlock); CvScalar s = cvAvg(m_pInputImage); m_RGBColor[i][j][0] = s.val[0]; m_RGBColor[i][j][1] = s.val[1]; m_RGBColor[i][j][2] = s.val[2]; RGB2Lab(m_RGBColor[i][j], m_LabColor[i][j]); cvReleaseImage(&pBlock);
0 0
- OpenCv 获取某一区域的RGB平均值
- 获取图片某一点的rgb色值
- 【拜小白opencv】14-只去除RGB的某一颜色通道
- opencv截取图像中某一区域的方法
- OpenCV中取ROI区域RGB的均值,求方差,ROI区域颜色是否明显区分
- 图像中某一块区域数据的选定获取
- opencv提取RGB分量及分量区域
- OpenCV CvGet2D获取彩色图像的RGB值
- opencv获取图像RGB值的两种方法
- OpenCV获取彩色图像某一通道的最大连通域
- 利用windows 系统的画图工具获取图片上某一点的颜色RGB值
- opencv获取感兴趣区域函数
- OpenCV提取轮廓的方法获取瞳孔区域及中心
- 【Opencv学习(三)】获取Mat图像的ROI区域
- opencv计算图像的平均值和标准差
- opencv获取彩色(RGB)图像直方图
- 获取RGB的js
- OpenCV中获取图像某一像素值
- 灵活强大的构建系统Gradle
- (4.2.16.3)判断某Activity是否在系统中存在?是否启动过?以及让它自行关闭
- 静态内部类、非静态内部类以及匿名类之间的区别
- iOS7 CookBook精彩瞬间(三)UIActivityViewController的基本使用及自定义Activity
- 【生成树计数】【矩阵树】【模板】
- OpenCv 获取某一区域的RGB平均值
- 工作心情--两个月有感
- Python--Tkinter之 Button()/Checkbutton()/Radiobutton()
- 【tarjan】【割点】
- java
- ee
- hi
- erlang的正则匹配和文本解析
- java并发编程第六章(4)使用基于优先级的阻塞式线程安全列表