
先进行灰度化,IplImage pImg = cvLoadImage( "C:\\1bmp", 0 ); 这样图像已经灰度化,然后调用cvThreshold(image, image, 125, 255, CV_THRESH_BINARY); 就可以了,125那里是你所用的阈值,这就是最简单的二值化,你要用ostu,或者别的高级一点的,就要自己写函数了
void main()
{
IplImage src = cvLoadImage("xxx",1);
int width = src->width;
int height = src->height;
uchar ptr = src->imageData;
int Iij;
double Imax = 0, Imin = 255, Iave = 0, Idelta = 0;
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
Iij = (int) ptr[iwidth+j];
if(Iij > Imax)
Imax = Iij;
if(Iij < Imin)
Imin = Iij;
Iave = Iave + Iij;
}
}
Iave = Iave/(widthheight);
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
Iij = (int) ptr[iwidth+j];
Idelta = Idelta + (Iij-Iave)(Iij-Iave);
}
}
Idelta = Idelta/(widthheight);
printf("灰度最大值 = %d\n",Imax);
printf("灰度最小值 = %d\n",Imin);
printf("灰度均值 = %d\n",Iave);
printf("灰度方差 = %d\n",Idelta);
return;
}
1cvLoadImage的flag为0读入的就是灰度图,这是强制转换的。如果读入的是彩色图可以通过cvCvtColor转换色彩空间
2某矩形区域可以设置为ROI,这样后续 *** 作只在ROI *** 作
3最亮的部分不是很理解,那部分找出来后你想怎么显示出来?你说的部分是按块还是按像素点?可以通过cvThreshold阈值 *** 作,来找到大于或者小于某阈值的部分,反正像素值越大越亮
打开小画家,将色卡打开,点击吸管工具,移动鼠标到红色块上方,松开鼠标,此时,吸管工具已经提取了红色色块信息。然后点击右方的“编辑颜色”,d出颜色选择对话框,此时,右下角有刚才习惯的红绿蓝颜色信息,如红152,绿18,蓝15。这个就是颜色对应的RGB色彩值。
创建VC控制台工程,加入所需头文件和库文件。注意要事先将opencv 头文件和库文件添加到工程属性中,作者使用opencv24+VC2010示范。
#include <opencv2/highgui/highguihpp>
#include <opencv2/imgproc/imgprochpp>
#include <iostream>
#include <stdioh>
#include <vector>
#include <mathh>
#pragma comment (lib,"opencv_core244dlib")
#pragma comment (lib,"opencv_highgui244dlib")
#pragma comment (lib,"opencv_imgproc244dlib")
定义一个颜色常量target,默认值即为刚才吸管工具提取的红色色块的RGB值分量,和一个计算与颜色标准值色差的函数,暂定为色差在10以内即为相近颜色。这里cv::Vec3b 变量对应一个数组值, Vec3b[0] 对应blue,Vec3b[1]对应green,Vec3b[2]对应Red,即BGR。
接着添加以下代码,目的为读取源,根据大小做一定的缩放,然后定义同样大小的一个灰度图,用于存贮计算结果值。核心算法如下,遍历源,色差(与红色色块比较)低于30的即为需要提取的颜色值,将此像素位置记录并写入到灰度图中,以黑色显示,否则设置为白色。然后将处理前后显示出来。
实际商业应用中也是可以如法炮制的,比如下图的药片,大小,颜色不统一,如何提取识别**小药片在何处或计算其数量呢。
笔者尝试使用吸管工具提取其BGR值为(22,184,245),将色差由10调整为30,可以正确检测此药片。如图。
以上就是关于OpenCV图像灰度化是怎么做的呢全部的内容,包括:OpenCV图像灰度化是怎么做的呢、opencv c++ 以灰度图方式加载一张图片,并统计该图像素的最大值、最小值、均值以及方差,完整代码、求助OpenCV达人等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)