基于c++的opencv读取图片并转换色彩空间代码,利用opencv中的cvtColor函数进行转换。
c++代码:
#include <string>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
string imageadd = "C:/Users/17310/Desktop/2.png";//图片地址
Mat image = imread (imageadd,-1);//读取地址并创建图片存入Mat(第二个值可以为:<1(原图),=1灰度图,>1RGB图片)
if( image.empty()) return -1;//读取失败返回-1
resize(image, image, Size(720, 720));//重新定义图片大小
namedWindow("Rgbimage", WINDOW_AUTOSIZE);//创建一个窗口
imshow("Rgbimage", image);//显示图片
Mat gray_image;//创建图片存入Mat
cvtColor(image,gray_image,CV_BGR2GRAY );//第一个值读入原始图片,第二个值转换后文件名称,第三个值是想要转换成什么色彩空间
namedWindow("Grayimage", WINDOW_AUTOSIZE);
imshow("Grayimage", gray_image);
imwrite("C:/Users/17310/Desktop/untitled/gray_image.bmp",gray_image);//写入图片
waitKey(0);
destroyAllWindows();
return 0;
}
RGB彩色图片为例子转换为灰度图:
运行结果: