2016-09-07 3 views
0

축이있는 MATLAB로 전체 해상도로 큰 이미지 (1641x6139)를 저장하려고합니다. imwrite 명령을 사용하면 축없이이 작업을 쉽게 수행 할 수 있습니다. 축이 이미지를 플롯하기 위해, 나는 쓰기 : 이미지가 매우 큰MATLAB에서 축을 사용하여 최대 해상도로 이미지 내보내기

image(x,y,my_image); 

때문에, MATLAB에서 자동으로 이미지의 해상도를 줄일 수 있습니다. 전체 이미지를 전체 해상도로 표시하려면 창 크기가 화면보다 훨씬 커야합니다. 그림을 내보내는 데 몇 가지 다른 방법을 시도했는데 각각 동일한 문제가 발생합니다. 이미지가 원본 이미지보다 더 거친 해상도로 픽셀 화됩니다. 문제는 새로운 이미지의 픽셀 수가 적지 않다는 것입니다. 대신에 이웃하는 픽셀에 동일한 값이 할당되어 더 거친 스케일 픽셀 화 모양을 만듭니다.

set(H, 'PaperPosition', [0, 0, width , height ]) 
print -dpng -r500 my_filename 

폭, 높이의 증가 나 해상도의 모든 화상의 화소 수를 증가시키는 효과를 가지고 있지만, 명백한 픽셀 레이션은 : H는도 핸들이다

는 I 시도 변하지 않은.

이 유형의 문제를 해결하기 위해 설계된 것으로 보이는 기능 export_fig을 사용해 보았습니다. 포함 된 이미지가 포함 된 기본 해상도로 내보낼 수 있다고 주장했습니다. 결과 이미지는 올바른 픽셀 수를 가진 것처럼 보이지만 문제는 인접 픽셀이 동일한 값을 가지므로 원래 이미지에없는 거친 픽셀의 모양을 만듭니다. I가 사용되는 코드이다

zoomed in images (original and using export_fig)

제 원본 이미지이고 두번째 이미지이다 : 여기

export_fig(my_filename,'-a1','-native') 

내 화상의 일부 확대 대략 동일한 나타내는 몇 이미지들이다 export_fig에 기인한다. 두 번째 이미지는 픽셀 화되어 있지만 각 이미지에는 대략 동일한 수의 실제 픽셀이 포함되어 있습니다.

모든 조언/해결책을 많이 주시면 감사하겠습니다. 이 문제는 내가 예상했던 것보다 훨씬 실망 스럽습니다.

+1

이미지 파일에 직접 쓰는 대신 이미지를 축에 먼저 그려야하는 특별한 이유가 있습니까? –

+0

그건 그렇고, export_fig -a1 -native는 적어도 2015a와 rand (2000, 2000, 3) 이미지 –

+0

을 사용하여 내 컴퓨터에서 축 틱으로 전체 해상도 이미지를 생성하는 것처럼 보입니다. 축을 이미지에 직접 연결하면 좋은 해결책이 될 것입니다. – Llouis

답변

0

간단한 해결책을 찾았습니다. 먼저 올바른 크기의 빈 이미지를 만들고 축을 추가 한 다음 export_fig를 사용하여 축의 이미지를 생성합니다. 그런 다음 전체 해상도 이미지를 이미지 행렬에 쓰고 imwrite를 사용하여 결과 이미지를 저장합니다.

관련 문제