在特定区域javacv中查找白色/黑色像素
我试过这个代码。540是长方体最左边的x值,3是长方体最左边的y值,262-宽度,23-区域高度,我将计算白/黑像素的比率。我真正想做的是检测特定区域中的白/黑像素比率。我已经计算了每个单元(我将指定的区域)的坐标,并尝试使用此代码。但是计数时出现错误 我能了解一下这个问题吗 我真的被我最后一年的项目困住了在特定区域javacv中查找白色/黑色像素,javacv,Javacv,我试过这个代码。540是长方体最左边的x值,3是长方体最左边的y值,262-宽度,23-区域高度,我将计算白/黑像素的比率。我真正想做的是检测特定区域中的白/黑像素比率。我已经计算了每个单元(我将指定的区域)的坐标,并尝试使用此代码。但是计数时出现错误 我能了解一下这个问题吗 我真的被我最后一年的项目困住了 CvSize cvSize = cvSize(img.width(), img.height()); IplImage image = cvCreateImage(cv
CvSize cvSize = cvSize(img.width(), img.height());
IplImage image = cvCreateImage(cvSize, IPL_DEPTH_8U, 1);
IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3);
cvCvtColor(image2, image, CV_RGB2GRAY);
cvSetImageROI(image2, cvRect(540,3,262,23));
//IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3);
//
//cvCvtColor(arg0, arg1, arg2)
// cvCvtColor(image2, image, CV_RGB2GRAY);
//cvThreshold(image, image, 128, 255, CV_THRESH_BINARY);
CvLineIterator iterator = new CvLineIterator();
double sum = 0, green_sum = 0, red_sum = 0;
CvPoint p2 = new CvPoint(802,3);
CvPoint p1 = new CvPoint(540,26);
int lineCount = cvInitLineIterator(image2, p1, p2, iterator, 8, 0 );
for (int i = 0; i < lineCount; i++) {
sum += iterator.ptr().get() & 0xFF;
}
System.out.println("sum................"+sum);
CV_NEXT_LINE_POINT(iterator);
}
}
CvSize CvSize=CvSize(img.width(),img.height());
IplImage image=cvCreateImage(cvSize,IPL_DEPTH_8U,1);
IplImage image2=cvCreateImage(cvSize,IPL_深度_8U,3);
CVT颜色(图像2,图像,CV_RGB2GRAY);
cvSetImageROI(图像2,cvRect(540,3262,23));
//IplImage image2=cvCreateImage(cvSize,IPL_深度_8U,3);
//
//CVT颜色(arg0、arg1、arg2)
//CVT颜色(图像2,图像,CV_RGB2GRAY);
//cvThreshold(图像,图像,128,255,CV_THRESH_二进制);
CvLineIterator迭代器=新的CvLineIterator();
双和=0,绿色和=0,红色和=0;
CvPoint p2=新的CvPoint(802,3);
CvPoint p1=新的CvPoint(540,26);
int lineCount=cvInitLineIterator(image2,p1,p2,iterator,8,0);
对于(int i=0;i
其结果为总和0.0
我真的很坚持这一点。你能为这个问题提供任何解决方案吗请Move
CV\u NEXT\u LINE\u POINT(迭代器)用于
循环的内的code>行。那么它应该会起作用