분리 기능을 사용하여 만든 3 개의 회색 음영 이미지가 있습니다. 이제 다시 컬러 이미지를 재생성하고 싶습니다. 다음 코드를 시도했지만 작동하지 않았습니다. 내가 얻은 결과 이미지는 회색 음영이었다. opencv에서 3 개의 그레이 스케일 [R, G, B] 이미지를 단일 컬러 이미지로 병합
cv::Mat R = cv::imread("/home/r/secret_R.png",0);
cv::Mat G = cv::imread("/home/r/secret_G.png",0);
cv::Mat B = cv::imread("/home/r/secret_B.png",0);
std::vector<cv::Mat> array_to_merge;
array_to_merge.push_back(R);
array_to_merge.push_back(G);
array_to_merge.push_back(B);
cv::Mat color;
cv::merge(array_to_merge, color);
그래서 그때는 cvtColor 기능 시도 :
cv::Mat color_converted;
cv::cvtColor(color, color_converted, CV_GRAY2BGR);
cv::imwrite("/home/r/color_secret.png",color_converted);
을하지만, 분명히, 그것은 단지 단 하나의 채널이 소스 이미지에 적용됩니다. 나는 내 그레이 스케일 이미지 중 하나 통과 :
cv::cvtColor(R, color_converted, CV_GRAY2BGR);
을하지만 난 여전히 다시 컬러 이미지를 가져올 수 없습니다. 결과 이미지가 회색 음영이었습니다
내가 뭘 잘못하고 있니? 내 컬러 이미지를 다시 얻으려면 어떻게해야합니까?
PNG 파일은 회색 픽셀 만있는 RGB 이미지가 아니라 회색 음영으로 인코딩되어 있습니까? 병합을하기 전에 OpenCV를 사용하여 R, G 및 B를 회색조로 변환하려고합니다. –
예, 확실히 회색 음영 단일 채널 이미지입니다, – Chani