【发布时间】:2017-02-21 16:16:39
【问题描述】:
在 Windows 上使用 OpenCV 3.2.0,我试图将图像拆分为其组件通道。我使用 MS Paint(另存为 24 位 BMP)创建了源图像文件,并将每个对象设置为纯色。从结果中可以看出,每个通道都包含除该通道的数据之外的所有内容。我很困惑。如何仅获取绿色图像中的绿色数据,等等?我正在使用以下代码:
#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);
}
【问题讨论】:
标签: opencv