COLOR_BGR2RGB = 4, COLOR_RGB2BGR = COLOR_BGR2RGB, COLOR_BGRA2RGBA = 5, COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, COLOR_BGR2GRAY = 6, COLOR_RGB2GRAY = 7, COLOR_GRAY2BGR = 8, COLOR_GRAY2RGB = COLOR_GRAY2BGR, COLOR_GRAY2BGRA = 9, COLOR_GRAY2RGBA = COLOR_GRAY2BGRA, COLOR_BGRA...
Mat img1, img2, img3, img4; img1= imread("猫1.jpg"); imshow("原图", img1); cvtColor(img1, img2, COLOR_RGB2GRAY); imshow("灰度图", img2); cvtColor(img1, img3, COLOR_RGB2HSV); imshow("HSV", img3); cvtColor(img1, img4, COLOR_RGB2BGR); imshow("BGR", img4); waitKey...
COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, COLOR_BGR2GRAY = 6, //!< convert between RGB/BGR and grayscale, @ref color_convert_rgb_gray "color conversions" COLOR_RGB2GRAY = 7, COLOR_GRAY2BGR = 8, COLOR_GRAY2RGB = COLOR_GRAY2BGR, COLOR_GRAY2BGRA = 9, COLOR_GRAY2RGBA = COLOR_GRAY2BG...
cv::ColorConversionCodes{ cv::COLOR_BGR2BGRA= 0, cv::COLOR_RGB2RGBA= COLOR_BGR2BGRA, cv::COLOR_BGRA2BGR= 1, cv::COLOR_RGBA2RGB= COLOR_BGRA2BGR, cv::COLOR_BGR2RGBA= 2, cv::COLOR_RGB2BGRA= COLOR_BGR2RGBA, cv::COLOR_RGBA2BGR= 3, cv::COLOR_BGRA2RGB= COLOR_RGBA2BGR, ...
可以看出计算的像素和opencv自己算的前2个像素一样的,后2个也一样。 如果用常规公式,前2个像素就不一样了。 yuv是无损采样,换YUV420 。 转YUV420 的时候:cv::cvtColor(pic, yuvImage, cv::COLOR_BGR2YUV_I420); 报错: 不能是float类型了!!
这里以CV_BGR2YUV_I420来讲 1. opencv244 core.cpp voidcv::cvtColor( InputArray _src, OutputArray _dst,intcode,intdcn ) { ...caseCOLOR_RGB2YUV_YV12:caseCOLOR_BGR2YUV_YV12:caseCOLOR_RGBA2YUV_YV12:caseCOLOR_BGRA2YUV_YV12:caseCOLOR_RGB2YUV_IYUV:caseCOLOR_BGR2YUV_IYUV:caseCOLOR_RGBA2YUV...
Static COLOR_RGB2RGBA := OpenCV.COLOR_BGR2BGRA Static COLOR_BGRA2BGR := 1 Static COLOR_RGBA2RGB := OpenCV.COLOR_BGRA2BGR Static COLOR_BGR2RGBA := 2 Static COLOR_RGB2BGRA := OpenCV.COLOR_BGR2RGBA Static COLOR_RGBA2BGR := 3 Static COLOR_BGRA2RGB := OpenCV.COLOR_RGBA2BGR ...
cv::COLOR_RGB2BGRA = COLOR_BGR2RGBA, cv::COLOR_RGBA2BGR = 3, cv::COLOR_BGRA2RGB = COLOR_RGBA2BGR, cv::COLOR_BGR2RGB = 4, cv::COLOR_RGB2BGR = COLOR_BGR2RGB, cv::COLOR_BGRA2RGBA = 5, cv::COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, ...
cv::COLOR_RGBA2RGB= COLOR_BGRA2BGR, cv::COLOR_BGR2RGBA= 2, cv::COLOR_RGB2BGRA= COLOR_BGR2RGBA, cv::COLOR_RGBA2BGR= 3, cv::COLOR_BGRA2RGB= COLOR_RGBA2BGR, cv::COLOR_BGR2RGB= 4, cv::COLOR_RGB2BGR= COLOR_BGR2RGB, ...
参数dstCn原来一直沿用CV_BGR2GRAY, CV_RGB2GRAY, CV_GRAY2BGR, CV_GRAY2RGB等格式,但最新几个版本的OpenCV已改为COLOR_BGR2GRAY类似形式,今天才看源代码imgproc.hpp才发现,但官方文档还没修改,如下图,如果程序中使用较新的版本OpenCV,采用CV_BGR2GRAY可能会一直出错。