用c++opencv写一个将图像红色值作为灰度值的代码
时间: 2023-06-02 15:03:46 浏览: 123
好的,你可以参考以下代码:
```
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("input.jpg", IMREAD_COLOR);
if (img.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
Mat gray;
// 将红色值作为灰度值
cvtColor(img, gray, COLOR_BGR2GRAY);
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.cols; j++)
{
gray.at<uchar>(i, j) = img.at<Vec3b>(i, j)[2];
}
}
imshow("Input", img);
imshow("Output", gray);
waitKey(0);
return 0;
}
```
该代码使用了 OpenCV 库,读入一张彩色图像,并将红色值作为灰度值来生成一张灰度图像。请替换代码中的 "input.jpg" 为你要处理的图像文件名,然后编译运行代码即可。
阅读全文