c – 如何在OpenCV中将灰度图像复制到RGB图像红色通道?
发布时间:2020-12-16 10:09:45 所属栏目:百科 来源:网络整理
导读:我有两个输入图像,它们是灰度,我创建了另一个图像,它是RGB,应该在红色通道中包含一个灰色图像,在绿色中包含另一个. Mat img,img2;img =imread("above.jpg",CV_LOAD_IMAGE_GRAYSCALE);img2 =imread("left.jpg",CV_LOAD_IMAGE_GRAYSCALE);Mat * aboveLeft = ne
我有两个输入图像,它们是灰度,我创建了另一个图像,它是RGB,应该在红色通道中包含一个灰色图像,在绿色中包含另一个.
Mat img,img2; img =imread("above.jpg",CV_LOAD_IMAGE_GRAYSCALE); img2 =imread("left.jpg",CV_LOAD_IMAGE_GRAYSCALE); Mat * aboveLeft = new Mat(img.rows,img.cols,CV_LOAD_IMAGE_COLOR); int from_to [] = {0,1}; cv::mixChannels(&img,1,aboveLeft,3,from_to,1); 我尝试使用mixChannels命令,将img输入写入aboveLeft的第一个通道,但我无法找出正确的语法并获得断言错误. 这是填写频道的正确方法吗? 解决方法
我假设img和img2具有相同的大小和类型.
cv::Mat img = cv::imread("above.jpg",CV_LOAD_IMAGE_GRAYSCALE); cv::Mat img2 = cv::imread("left.jpg",CV_LOAD_IMAGE_GRAYSCALE); std::vector<cv::Mat> images(3); Mat black = Mat::zeros(img.rows,img.type()); images.at(0) = black; //for blue channel images.at(1) = img; //for green channel images.at(2) = img2; //for red channel cv::Mat colorImage; cv::merge(images,colorImage); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |