Zi 字媒體
2017-07-25T20:27:27+00:00
fanfuhan OpenCV 教學008 ~ opencv-008-圖像通道的分離與合併 [過濾特定顏色干擾訊號]
資料來源: https://fanfuhan.github.io/
https://fanfuhan.github.io/2019/03/24/opencv-008/
GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV
C++
#include
#include
using namespace std;
using namespace cv;
/*
* 图像通道分离与合并
*/
int main() {
Mat src = imread("../images/baboon.jpg");
if (src.empty()) {
cout << "could not load image.." << endl;
}
imshow("input", src);
vector mv; // mv用于存储图像分离后各通道像素
Mat dst1, dst2, dst3;
// 令蓝色通道为0
split(src, mv);
mv[0] = Scalar(0);
merge(mv, dst1);
imshow("blue == 0", dst1);
// 令绿色通道为0
split(src, mv);
mv[1] = Scalar(0);
merge(mv, dst2);
imshow("green == 0", dst2);
// 令红色通道为0
split(src, mv);
mv[2] = Scalar(0);
merge(mv, dst3);
imshow("red == 0", dst3);
waitKey(0);
return 0;
}
Python
import cv2 as cv
src = cv.imread("../images/baboon.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
# 蓝色通道为零
mv = cv.split(src)
mv[0][:, :] = 0
dst1 = cv.merge(mv)
cv.imshow("output1", dst1)
# 绿色通道为零
mv = cv.split(src)
mv[1][:, :] = 0
dst2 = cv.merge(mv)
cv.imshow("output2", dst2)
# 红色通道为零
mv = cv.split(src)
mv[2][:, :] = 0
dst3 = cv.merge(mv)
cv.imshow("output3", dst3)
cv.waitKey(0)
cv.destroyAllWindows()
寫了
5860316篇文章,獲得
23313次喜歡