2013-02-15 2 views
0

opencv를 사용하고 있으며 imshow()를 사용하여 볼 수있는 프레임이 있지만 imwrite를 사용하여 디스크에 저장하면 흑인이됩니다. 영상.imshow에서 볼 수있는 이미지를 imwrite 할 수 없습니다.

...... 
// frame *= 1/255; even converting the color before writing it didn't help 
cv::sqrt(frame,frame); 
cv::imwrite("name.tif",frame); 
frame *=1/15.96; 
imshow("frame",frame); //it works fine 
................ 

왜 작동하지 않는지. 미리 감사드립니다.

+0

TIFF 형식 지원 (CMake 옵션 사용)으로 제작 했습니까? jpeg, png, bmp 등의 다른 형식을 시도 했습니까 ... – Antoine

+0

예 다른 형식을 시도했지만 TIFF 확장자가있는 다른 프레임을 저장하면 작동합니다. – Engine

+0

그게 무슨 뜻입니까? 오류가 발생합니까 아니면 빈 프레임이 생깁니 까? –

답변

0

여기서 수행 한 작업은 imwrite()를 수행 한 다음 프레임에서 수학 연산을 수행하고 imshow()를 수행 한 것입니다.

Ergo, 두 가지 버전의 매트 프레임을 쓰고보고 있습니다. .tiff 확장이 작동하는지 확인했다면 sqrt()가 검은 색 프레임이 될 수 있습니다. 시도해보십시오 :

cv::sqrt(frame,frame); 

frame *=1/15.96; 

cv::imwrite("name.tif",frame); 
imshow("frame",frame); 

이제는보고있는 내용을 쓰고 있다는 것을 확신 할 수 있습니다. 둘 사이에 여전히 차이가 있다면 다른 이미지 형식과 동일하게 시도하십시오.

관련 문제