2011-11-15 2 views
0

우리는 이진 이미지 (값 0 또는 255)를 많이 만들었습니다 (예 : 100) Mat::zeros(Size(100, 100), CV_8UC1);입니다. 우리는 그것들을 몇 가지 데이터로 채 웠습니다 (다른 이미지 위에 겹칠 수 있습니다). 이제 우리는 단일 매트의 모든 데이터가 고유 한 RGB 값 및 알파 == 0.5로 표시되는 하나의 절약 가능한 RGBA 이미지에이 이미지를 결합하려고합니다. openCV 2와 같은 작업을 수행하는 방법은 무엇입니까?하나의 RGBA 이미지에`CV :: Mat` 이미지 (`Size (M, N), CV_8UC1`)를 여러개 넣는 방법?

답변

0

불행하게도 I/O libs와 (예 : PNG로)를 처리하는 형식

"오직 8 비트의 투명도를 지원 OpenCV의 알파 채널을 지원하지 않으며 나는 그것의 어떤 파일 생각하지 않습니다 (또는 PNG, JPEG 2000 및 TIFF의 경우 16 비트) 단일 채널 또는 3 채널 (BGR 채널 순서) 이미지는이 기능을 사용하여 저장할 수 있습니다. http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html#cv-imwrite

4 채널 CV_8UC4를 사용하여 이미지 형식을 만들고 알파를 직접 조작 할 수 있지만 imread/imwrite를 사용하여 읽고 쓸 수는 없습니다

+0

openCV cant create transpar PNGs 예를 들면? = (나는이 좋은 문서를보고있다. (http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&do=get&target=opencv_cheatsheet.pdf)하지만 여전히 내 문제를 해결할 수 없다. 채널 ... ( – Rella

+0

예, 4 채널 이미지를 만들고이를 개별 채널 형식으로 혼합하는 방법을 보여줍니다 (또는 픽셀 데이터를 포인터로 결합 할 수는 있지만) imwrite를 사용하여 RGBA를 저장할 수 없습니다 –

+0

BTW BGR의 서명은 무엇입니까? 나는 CV_8UC3에서 .jpg로 약간의 나쁜 이미지를 얻는다. ( – Rella

관련 문제