Image processing 如何使用OpenCV操作像矩阵一样的图像?

Image processing 如何使用OpenCV操作像矩阵一样的图像?,image-processing,opencv,Image Processing,Opencv,我需要开发一种方法来找到红线和图像底部的距离。 我已经用一些例子隔离了hsv中的红线。。。 我知道如何使用MatLab实现这一点,但现在我必须使用opencv:s 有人能告诉我怎么做吗?您可以通过以下方式访问图像的每个像素值 IplImage* img=cvLoadImage("your_image.jpg"); int pixelVal; for(int x=0;x<img->height;x++){ for(int y=0;y<img->width;y++){

我需要开发一种方法来找到红线和图像底部的距离。 我已经用一些例子隔离了hsv中的红线。。。 我知道如何使用MatLab实现这一点,但现在我必须使用opencv:s
有人能告诉我怎么做吗?

您可以通过以下方式访问图像的每个像素值

IplImage* img=cvLoadImage("your_image.jpg");
int pixelVal;
for(int x=0;x<img->height;x++){
for(int y=0;y<img->width;y++){
    pixelVal=((uchar*)(img->imageData + img->widthStep*x))[y];
}
}
IplImage*img=cvLoadImage(“your_image.jpg”);
整数像素值;
for(int x=0;xheight;x++){
对于(int y=0;ywidth;y++){
pixelVal=((uchar*)(img->imageData+img->widthStep*x))[y];
}
}
在这里

img->imageData返回指向图像起始内存位置的指针

img->widthStep是图像行中的字节数


我们访问每个像素值,并使用无符号字符指针强制转换以获得int值。

您可以通过以下方式访问图像的每个像素值

IplImage* img=cvLoadImage("your_image.jpg");
int pixelVal;
for(int x=0;x<img->height;x++){
for(int y=0;y<img->width;y++){
    pixelVal=((uchar*)(img->imageData + img->widthStep*x))[y];
}
}
IplImage*img=cvLoadImage(“your_image.jpg”);
整数像素值;
for(int x=0;xheight;x++){
对于(int y=0;ywidth;y++){
pixelVal=((uchar*)(img->imageData+img->widthStep*x))[y];
}
}
在这里

img->imageData返回指向图像起始内存位置的指针

img->widthStep是图像行中的字节数


我们访问每个像素值,并使用无符号字符指针强制转换以获取int值。

您需要添加问题的更多详细信息。如果可能,在imageshack.us中上传一个示例图像,并在此处提供链接。图像在OpenCV和任何地方都以矩阵表示<代码>cv::Mat img=imread(“myImage.jpg”)将为您提供一个矩阵。如何访问矩阵的任何元素?它像img[x,y]?如果(img[x,y,1]>155){distance=y-img->width}您需要添加问题的更多细节。如果可能,在imageshack.us中上传一个示例图像,并在此处提供链接。图像在OpenCV和任何地方都以矩阵表示<代码>cv::Mat img=imread(“myImage.jpg”)将为您提供一个矩阵。如何访问矩阵的任何元素?它像img[x,y]?如果(img[x,y,1]>155){distance=y-img->width}该怎么办?谢谢你!我如何使用这个来访问色调?请原谅我的无知。首先,您必须使用CVTimage(源、目标、CV_BGR2HSV)将图像转换为HSV格式。然后试试这个谢谢你!我如何使用这个来访问色调?请原谅我的无知。首先,您必须使用CVTimage(源、目标、CV_BGR2HSV)将图像转换为HSV格式。然后试试这个