使用imwrite写图像 - 获取白色图像

时间:2014-07-08 17:31:07

标签: image matlab image-processing

我正在编写一个生成一系列图像的函数。我正在使用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的白色图像。有什么帮助吗? 谢谢

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

添加到user3817401写的内容。

完成白色图像可能是因为数据在发送到imwrite之前未被缩放。请考虑以下事项:

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

在imwrite之前。这将保证图像在0-1范围内并且应该解决问题。

答案 2 :(得分:1)

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

相关问题