OpenCV颜色空间转换函数:cv::cvtColor介绍

OpenCV颜色空间转换函数:cv::cvtColor介绍





Color Conversion Code(颜色转换代码)

Enumerator

COLOR_BGR2BGRA 

add alpha channel to RGB or BGR image

COLOR_RGB2RGBA 

COLOR_BGRA2BGR 

remove alpha channel from RGB or BGR image

COLOR_RGBA2RGB 

COLOR_BGR2RGBA 

convert between RGB and BGR color spaces (with or without alpha channel)

COLOR_RGB2BGRA 

COLOR_RGBA2BGR 

COLOR_BGRA2RGB 

COLOR_BGR2RGB 

COLOR_RGB2BGR 

COLOR_BGRA2RGBA 

COLOR_RGBA2BGRA 

COLOR_BGR2GRAY 

convert between RGB/BGR and grayscale, color conversions

COLOR_RGB2GRAY 

COLOR_GRAY2BGR 

COLOR_GRAY2RGB 

COLOR_GRAY2BGRA 

COLOR_GRAY2RGBA 

COLOR_BGRA2GRAY 

COLOR_RGBA2GRAY 

COLOR_BGR2BGR565 

convert between RGB/BGR and BGR565 (16-bit images)

COLOR_RGB2BGR565 

COLOR_BGR5652BGR 

COLOR_BGR5652RGB 

COLOR_BGRA2BGR565 

COLOR_RGBA2BGR565 

COLOR_BGR5652BGRA 

COLOR_BGR5652RGBA 

COLOR_GRAY2BGR565 

convert between grayscale to BGR565 (16-bit images)

COLOR_BGR5652GRAY 

COLOR_BGR2BGR555 

convert between RGB/BGR and BGR555 (16-bit images)

COLOR_RGB2BGR555 

COLOR_BGR5552BGR 

COLOR_BGR5552RGB 

COLOR_BGRA2BGR555 

COLOR_RGBA2BGR555 

COLOR_BGR5552BGRA 

COLOR_BGR5552RGBA 

COLOR_GRAY2BGR555 

convert between grayscale and BGR555 (16-bit images)

COLOR_BGR5552GRAY 

COLOR_BGR2XYZ 

convert RGB/BGR to CIE XYZ, color conversions

COLOR_RGB2XYZ 

COLOR_XYZ2BGR 

COLOR_XYZ2RGB 

COLOR_BGR2YCrCb 

convert RGB/BGR to luma-chroma (aka YCC), color conversions

COLOR_RGB2YCrCb 

COLOR_YCrCb2BGR 

COLOR_YCrCb2RGB 

COLOR_BGR2HSV 

convert RGB/BGR to HSV (hue saturation value), color conversions

COLOR_RGB2HSV 

COLOR_BGR2Lab 

convert RGB/BGR to CIE Lab, color conversions

COLOR_RGB2Lab 

COLOR_BGR2Luv 

convert RGB/BGR to CIE Luv, color conversions

COLOR_RGB2Luv 

COLOR_BGR2HLS 

convert RGB/BGR to HLS (hue lightness saturation), color conversions

COLOR_RGB2HLS 

COLOR_HSV2BGR 

backward conversions to RGB/BGR

COLOR_HSV2RGB 

COLOR_Lab2BGR 

COLOR_Lab2RGB 

COLOR_Luv2BGR 

COLOR_Luv2RGB 

COLOR_HLS2BGR 

COLOR_HLS2RGB 

COLOR_BGR2HSV_FULL 

COLOR_RGB2HSV_FULL 

COLOR_BGR2HLS_FULL 

COLOR_RGB2HLS_FULL 

COLOR_HSV2BGR_FULL 

COLOR_HSV2RGB_FULL 

COLOR_HLS2BGR_FULL 

COLOR_HLS2RGB_FULL 

COLOR_LBGR2Lab 

COLOR_LRGB2Lab 

COLOR_LBGR2Luv 

COLOR_LRGB2Luv 

COLOR_Lab2LBGR 

COLOR_Lab2LRGB 

COLOR_Luv2LBGR 

COLOR_Luv2LRGB 

COLOR_BGR2YUV 

convert between RGB/BGR and YUV

COLOR_RGB2YUV 

COLOR_YUV2BGR 

COLOR_YUV2RGB 

COLOR_YUV2RGB_NV12 

YUV 4:2:0 family to RGB.

COLOR_YUV2BGR_NV12 

COLOR_YUV2RGB_NV21 

COLOR_YUV2BGR_NV21 

COLOR_YUV420sp2RGB 

COLOR_YUV420sp2BGR 

COLOR_YUV2RGBA_NV12 

COLOR_YUV2BGRA_NV12 

COLOR_YUV2RGBA_NV21 

COLOR_YUV2BGRA_NV21 

COLOR_YUV420sp2RGBA 

COLOR_YUV420sp2BGRA 

COLOR_YUV2RGB_YV12 

COLOR_YUV2BGR_YV12 

COLOR_YUV2RGB_IYUV 

COLOR_YUV2BGR_IYUV 

COLOR_YUV2RGB_I420 

COLOR_YUV2BGR_I420 

COLOR_YUV420p2RGB 

COLOR_YUV420p2BGR 

COLOR_YUV2RGBA_YV12 

COLOR_YUV2BGRA_YV12 

COLOR_YUV2RGBA_IYUV 

COLOR_YUV2BGRA_IYUV 

COLOR_YUV2RGBA_I420 

COLOR_YUV2BGRA_I420 

COLOR_YUV420p2RGBA 

COLOR_YUV420p2BGRA 

COLOR_YUV2GRAY_420 

COLOR_YUV2GRAY_NV21 

COLOR_YUV2GRAY_NV12 

COLOR_YUV2GRAY_YV12 

COLOR_YUV2GRAY_IYUV 

COLOR_YUV2GRAY_I420 

COLOR_YUV420sp2GRAY 

COLOR_YUV420p2GRAY 

COLOR_YUV2RGB_UYVY 

YUV 4:2:2 family to RGB.

COLOR_YUV2BGR_UYVY 

COLOR_YUV2RGB_Y422 

COLOR_YUV2BGR_Y422 

COLOR_YUV2RGB_UYNV 

COLOR_YUV2BGR_UYNV 

COLOR_YUV2RGBA_UYVY 

COLOR_YUV2BGRA_UYVY 

COLOR_YUV2RGBA_Y422 

COLOR_YUV2BGRA_Y422 

COLOR_YUV2RGBA_UYNV 

COLOR_YUV2BGRA_UYNV 

COLOR_YUV2RGB_YUY2 

COLOR_YUV2BGR_YUY2 

COLOR_YUV2RGB_YVYU 

COLOR_YUV2BGR_YVYU 

COLOR_YUV2RGB_YUYV 

COLOR_YUV2BGR_YUYV 

COLOR_YUV2RGB_YUNV 

COLOR_YUV2BGR_YUNV 

COLOR_YUV2RGBA_YUY2 

COLOR_YUV2BGRA_YUY2 

COLOR_YUV2RGBA_YVYU 

COLOR_YUV2BGRA_YVYU 

COLOR_YUV2RGBA_YUYV 

COLOR_YUV2BGRA_YUYV 

COLOR_YUV2RGBA_YUNV 

COLOR_YUV2BGRA_YUNV 

COLOR_YUV2GRAY_UYVY 

COLOR_YUV2GRAY_YUY2 

COLOR_YUV2GRAY_Y422 

COLOR_YUV2GRAY_UYNV 

COLOR_YUV2GRAY_YVYU 

COLOR_YUV2GRAY_YUYV 

COLOR_YUV2GRAY_YUNV 

COLOR_RGBA2mRGBA 

alpha premultiplication

COLOR_mRGBA2RGBA 

COLOR_RGB2YUV_I420 

RGB to YUV 4:2:0 family.

COLOR_BGR2YUV_I420 

COLOR_RGB2YUV_IYUV 

COLOR_BGR2YUV_IYUV 

COLOR_RGBA2YUV_I420 

COLOR_BGRA2YUV_I420 

COLOR_RGBA2YUV_IYUV 

COLOR_BGRA2YUV_IYUV 

COLOR_RGB2YUV_YV12 

COLOR_BGR2YUV_YV12 

COLOR_RGBA2YUV_YV12 

COLOR_BGRA2YUV_YV12 

COLOR_BayerBG2BGR 

Demosaicing.

COLOR_BayerGB2BGR 

COLOR_BayerRG2BGR 

COLOR_BayerGR2BGR 

COLOR_BayerBG2RGB 

COLOR_BayerGB2RGB 

COLOR_BayerRG2RGB 

COLOR_BayerGR2RGB 

COLOR_BayerBG2GRAY 

COLOR_BayerGB2GRAY 

COLOR_BayerRG2GRAY 

COLOR_BayerGR2GRAY 

COLOR_BayerBG2BGR_VNG 

Demosaicing using Variable Number of Gradients.

COLOR_BayerGB2BGR_VNG 

COLOR_BayerRG2BGR_VNG 

COLOR_BayerGR2BGR_VNG 

COLOR_BayerBG2RGB_VNG 

COLOR_BayerGB2RGB_VNG 

COLOR_BayerRG2RGB_VNG 

COLOR_BayerGR2RGB_VNG 

COLOR_BayerBG2BGR_EA 

Edge-Aware Demosaicing.

COLOR_BayerGB2BGR_EA 

COLOR_BayerRG2BGR_EA 

COLOR_BayerGR2BGR_EA 

COLOR_BayerBG2RGB_EA 

COLOR_BayerGB2RGB_EA 

COLOR_BayerRG2RGB_EA 

COLOR_BayerGR2RGB_EA 

COLOR_BayerBG2BGRA 

Demosaicing with alpha channel.

COLOR_BayerGB2BGRA 

COLOR_BayerRG2BGRA 

COLOR_BayerGR2BGRA 

COLOR_BayerBG2RGBA 

COLOR_BayerGB2RGBA 

COLOR_BayerRG2RGBA 

COLOR_BayerGR2RGBA 

COLOR_COLORCVT_MAX 










  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,使用OpenCV库可以实现h265格式和cv::Mat之间的互转。下面是转换的示例代码: 1.从h265格式转为cv::Mat: ```cpp #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <fstream> #include <vector> cv::Mat h265ToMat(const std::string& filename) { std::ifstream file(filename, std::ios::binary); if (!file) { std::cerr << "Failed to open H265 file." << std::endl; return cv::Mat(); } // 获取h265文件大小 file.seekg(0, std::ios::end); std::streampos fileSize = file.tellg(); file.seekg(0, std::ios::beg); // 读取h265数据 std::vector<unsigned char> buffer(fileSize); file.read(reinterpret_cast<char*>(buffer.data()), fileSize); // 解码h265数据 cv::cuda::GpuMat gpuH265(buffer); cv::Mat h265; gpuH265.download(h265); // 转为RGB格式的cv::Mat cv::cuda::GpuMat gpuRGB; cv::cuda::cvtColor(gpuH265, gpuRGB, cv::COLOR_YUV2RGB); cv::Mat rgb; gpuRGB.download(rgb); return rgb.clone(); // 返回深拷贝的cv::Mat } ``` 2.从cv::Mat转为h265格式: ```cpp #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <fstream> #include <vector> void matToH265(const cv::Mat& image, const std::string& filename) { // 转为YUV格式 cv::cuda::GpuMat gpuRGB(image); cv::cuda::GpuMat gpuYUV; cv::cuda::cvtColor(gpuRGB, gpuYUV, cv::COLOR_RGB2YUV); // 编码为h265数据 cv::Mat yuv; gpuYUV.download(yuv); cv::cuda::GpuMat gpuH265(yuv); cv::cuda::GpuMat gpuH265Encoded; cv::Ptr<cv::cudacodec::EncoderParams> params = cv::cudacodec::createEncoderParams(); params->outputFileName = filename; cv::Ptr<cv::cudacodec::Encoder> encoder = cv::cudacodec::createVideoEncoder("h265", params); encoder->encode(gpuH265, gpuH265Encoded); // 写入h265文件 std::ofstream file(filename, std::ios::binary); if (!file) { std::cerr << "Failed to create H265 file." << std::endl; return; } std::vector<unsigned char> encodedData; gpuH265Encoded.download(encodedData); file.write(reinterpret_cast<char*>(encodedData.data()), encodedData.size()); } ``` 这样,你就可以在C++中实现h265格式和cv::Mat之间的互转了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值