0

我有以下代码,我的频道数是 3

IplImage* img_crop_mat = cvLoadImage("....", 1);
...
int b = 0;
uchar* rgb = (uchar*) img_crop_mat->imageData;

我想在一个循环中使用R,GB矩阵,浏览整个图像:

for (int y = b; y < height - b; y++)
{    
    ???
    for (int x = b; x < width - b; x++)
    {
        ????
    }
}

以前关于我的问题的论坛处理 CvMat,但没有将指针作为我的代码。

我必须考虑哪些指标?

4

1 回答 1

1

您可以使用以下宏访问 3 通道 8U 图像的任意像素:

CV_IMAGE_ELEM(myImage, unsigned char, y, x*3 + ChannelOfInterest)

这是一个左值,因此您可以获取并使用它的值,或者您可以更改像素的值。

默认,

ChannelOfInterest = 0, blue
ChannelOfInterest = 1, green
ChannelOfInterest = 2, red

实际的数据结构非常简单,查看 CV_IMAGE_ELEM 的定义。

于 2013-03-04T16:49:56.767 回答