OpenCV图像通道的合并与分离

图 像 通 道 的 合 并 与 分 离 图像通道的合并与分离

1.视频教程:
B站、网易云课堂、腾讯课堂
2.代码地址:
Gitee
Github
3.存储地址:
Google云
百度云:
提取码:

1.通道分离

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

	Mat src = imread("E:/cats.jpg", IMREAD_UNCHANGED);

	if (src.empty()) {
		printf("image is empty!!!");
		return -1;
	}
	namedWindow("image", WINDOW_FREERATIO); 
	imshow("image", src);
	vector<Mat> mv;
	split(src, mv);
	int size = mv.size();
	printf("number of channels:%d\n",size);
	imshow("blue channel", mv[0]);
	imshow("green channel", mv[1]);
	imshow("red channel", mv[2]);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

在这里插入图片描述

2.通道合并

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

	Mat src = imread("E:/cats.jpg", IMREAD_UNCHANGED);

	if (src.empty()) {
		printf("image is empty!!!");
		return -1;
	}
	namedWindow("image", WINDOW_FREERATIO); 
	imshow("image", src);
	vector<Mat> mv;
	split(src, mv);
	int size = mv.size();
	printf("number of channels:%d\n",size);
	imshow("blue channel", mv[0]);
	imshow("green channel", mv[1]);
	imshow("red channel", mv[2]);

	mv[1] = Scalar(0);
	Mat dst;
	merge(mv, dst); // 通道合并
	imshow("result", dst);
	waitKey(0);
	destroyAllWindows();
	return 0;
}



在这里插入图片描述

3.ROI

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {

	Mat src = imread("E:/cats.jpg", IMREAD_UNCHANGED);

	if (src.empty()) {
		printf("image is empty!!!");
		return -1;
	}
	namedWindow("image", WINDOW_FREERATIO); 
	imshow("image", src);

	// ROI 
	Rect roi;
	roi.x = 100;
	roi.y = 100;
	roi.width = 250;
	roi.height = 250;
	Mat sub = src(roi);
	imshow("roi", sub);

	waitKey(0);
	destroyAllWindows();
	return 0;
}



在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值