2014-07-08 3 views
1

일련의 이미지를 생성하는 함수를 작성하고 있습니다. imwrite 함수를 사용하여 각 이미지를 파일에 씁니다.imwrite- 이미지를 사용하여 이미지 작성하기

Ecc=sqrt(real(E(:,:,1)).^2+real(E(:,:,2)).^2+real(E(:,:,3)).^2+imag(E(:,:,1)).^2+imag(E(:,:,2)).^2+imag(E(:,:,3)).^2); 
clf 

Q=imagesc(nx/rad,ny/rad,Ecc); 
    if i==1 
    cl=caxis; 
    else 
    caxis(cl) 
    end 
imwrite(Q,['Frame-',num2str(i),'.tif'],'tif'); 

그러나 이미지가 표시되지 않습니다. 파일은 잘 생성되지만 크기가 1x1 인 흰색 이미지 일뿐입니다. 어떤 도움을 주시겠습니까? 고맙습니다.

답변

4

Q 대신 을 에 사용하십시오. imagesc의 출력 (필자가 상기 한대로)은 그림에 대한 핸들이며 작성하려는 것이 아닙니다. 대신 Ecc를 작성하십시오.

1

imagesc 함수는 크기가 조정 된 이미지 데이터가 아닌 핸들을 반환합니다 (Q로 저장). 그런 다음 imwrite 함수는 Q를 이미지로 해석합니다. 그것은 핸들이기 때문에 단지 1x1이고 값은 이미지로서 의미가 없습니다. 원하는대로 Ecc를 확장 한 다음 대신 작성하십시오.

3

user3817401에 기록한 내용을 추가하십시오.

완전하게 흰색 이미지는 imwrite로 보내기 전에 데이터의 크기가 조정되지 않아 발생할 수 있습니다. 다음을 고려하십시오.

Ecc = (Ecc - min(min(Ecc)))/(max(max(Ecc)) - min(min(Ecc))); 

promwrite before imwrite. 이렇게하면 이미지가 0-1 범위에 있고 문제를 해결해야합니다.

+0

감사합니다. 위대한 작품! –

+0

내 기쁨 :) – LordViaderko

+0

고마워! 2/3 년 후에도 도움이되었습니다. :) –

관련 문제