opencv - 如何使用 opencv2.3 获取 r,g,b 值

标签 opencv computer-vision

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
OpenCV rgb value for cv::Point in cv::Mat



如您所知,在 matlab 中使用 r = image(:,:,1) 很容易获得 r/g/b 值。 .

但是在openCV(2.2之前)我们必须使用这样的指针:
plImage* img=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3); ((float *)(img->imageData + i*img->widthStep))[j*img->nChannels + 0]=111; // B ((float *)(img->imageData + i*img->widthStep))[j*img->nChannels + 1]=112; // G ((float *)(img->imageData + i*img->widthStep))[j*img->nChannels + 2]=113; // R
但是随着openCV2.3的出现,很容易得到单 channel 图像的像素值,如下所示:
Mat image;
int pixel = image.at<uchar>(row,col);

所以我只是想知道还有一种简单的方法来获取多 channel 图像的 r,g,b 像素值,就像在 Matlab 中那样?任何帮助将不胜感激 =)

最佳答案

对于 C++ 接口(interface),您可以执行以下操作:

Vec3f pixel = image.at<Vec3f>(row, col);

int b = pixel[0];
int g = pixel[1];
int r = pixel[2];

关于opencv - 如何使用 opencv2.3 获取 r,g,b 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8258628/

相关文章:

c++ - 从 HSV 直方图中获取主色值

python - 在 Python OpenCV 中查找最大和第二大面积轮廓

python - 计算使用ORB计算的匹配之间的阈值距离

opencv - 如何使用OpenCV人脸识别模块获得更好的结果

python-2.7 - Python 2.7:cv2.stereoCalibrate()中的错误。找不到必需的参数 'distCoeffs1'(pos 5)

image - imwrite 合并图像 : writing image after adding alpha channel to it opencv python

OpenCV gpu::dft 逆变换后的失真图像

opencv - 绘制相机轨迹

machine-learning - 正确分割数据集

python-3.x - 与 django react 的计算机视觉视频帧结果