我在Python中有这个代码:
width = cv.GetSize(img_otsu)[0]
height = cv.GetSize(img_otsu)[1]
#print width,":",height
for y in range(height):
for x in range(width):
if(img_otsu[y,x]==(255.0)):
CountPixelW+=1
if(img_otsu[y,x]==(0.0)):
CountPixelB+=1
我想将此Python代码转换为C ++
这是我到目前为止所做的:
cv::threshold(img_gray,img_otsu,0.0,255.0,cv::THRESH_BINARY+cv::THRESH_OTSU);
for(int y =0;y<=img_otsu.size().height;y++)
for(int x=0;x<=img_otsu.size().width;x++)
{
//Check Pixel 0 or 255 This is Problem
}
如何在C ++中检查像素是黑色还是白色?
答案 0 :(得分:0)
您可以对at()
个对象使用Mat
函数(请参阅OpenCV docs)。
img_otsu.at<uchar>(y,x)
将返回该位置矩阵中元素的值。请注意,您可能需要将uchar
更改为任何类型的矩阵img_otsu
(例如float
或double
)。获得该值后,只需将其与0或255进行比较。