2
在Windows上使用OpenCV 3.2.0,我試圖將圖像拆分爲其組件通道。我使用MS Paint創建了源圖像文件(保存爲24位BMP),並將每個對象設置爲純色。從結果中可以看出,每個通道都包含所有內容,但包含該通道的數據。我很困惑。如何在綠色圖像中獲得綠色數據,等等?我使用下面的代碼:無法拆分RGB通道
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <string>
#include <cstdlib>
#include "opencv2\opencv.hpp"
using namespace std;
using namespace cv;
const string source_window = "Source";
const string red_window = "Red";
const string green_window = "Green";
const string blue_window = "Blue";
int main (int Argc, char** Argv)
{
Mat src = imread ("Test.bmp");
vector<Mat> rgb;
namedWindow (source_window, WINDOW_AUTOSIZE);
namedWindow (red_window, WINDOW_AUTOSIZE);
namedWindow (green_window, WINDOW_AUTOSIZE);
namedWindow (blue_window, WINDOW_AUTOSIZE);
imshow (source_window, src);
cv::split (src, rgb);
imshow (red_window, rgb [2]);
imshow (green_window, rgb [1]);
imshow (blue_window, rgb [0]);
waitKey (0);
}
我沒有將背景設置爲白色,爲什麼它是白色的?在紅色窗口中,爲什麼我看不到有白色圓圈的黑色背景? – Brian
在你的源圖像背景是白色的,這就是我所指的。你看不到紅色窗口中的黑色bg,因爲對於白色背景紅色通道具有255的強度 – alexisrozhkov
啊,我明白了。謝謝。我編輯了源圖像以將背景設置爲黑色,現在我明白了我的期望。謝謝! – Brian