這裏是我完全不瞭解的功能,我想完全理解:在C使用無符號的字符數據表示
/**
* Returns: the label of a vertex in the given image at location (x, y).
* 0 = unlabeled vertex at location (x, y)
* 1 = background label at location (x, y)
* 2 = object/foreground label at location (x, y)
*/
int getLabelAtVertexXY(IplImage* image, int x, int y) {
uchar* data = (uchar*) image->imageData + y * image->widthStep + 3 * x;
if (data[2] < 128 && data[1] < 128)
return 0;
else if (data[1] > data[2])
return 1; // TODO: data[1] holds probability in background starting at 128-255?
else
return 2;
}
這裏是我得到:圖像的每個像素被標記爲0,1或2.這些信息如何被存儲在unsigned char
指針data
?
我意識到一個unsigned char
可以代表從0到255的數字,但unsigned char
確實檢索?
像素可以具有0-255的值(這可以方便地適合單個無符號字節) –
您沒有足夠的代碼。在某處,可能在IplImage的定義中,解釋了imageData的字節編碼。 –