2014-07-08 70 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

Ecc上使用imwrite而不是Qimagesc的输出(我记得)是图形的句柄,这不是你想要写出来的。改为写出Ecc

1

函数imagesc返回一个句柄(将其存储为Q),而不是缩放的图像数据。然后,函数imwrite将Q解释为图像。因为它是一个句柄,它只是1x1,它的价值作为一个图像没有意义。尝试按需要缩放Ecc,然后写入。

3

添加到user3817401写入的内容。

完全白色的图像可能是因为数据在发送到imwrite之前未被缩放。考虑以下内容:

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

在imwrite之前promply。这可以保证图像在0-1范围内,并且可以解决问题。

+0

谢谢大家!很棒! –

+0

我的荣幸:) – LordViaderko

+0

谢谢!甚至2/3年后它帮助:) –