0

我在使用创建的 matlab GUI 中的按钮更新字符串时遇到了很多麻烦。目标是让这个按钮在图像上执行一个函数,其字符串已放置在 GUI 上的文本框中,然后用新图像的字符串替换旧字符串

我遇到的主要问题是我需要文件为 .raw 格式,但我无法弄清楚我将如何做到这一点。我可以将旧字符串替换为 .png 格式的新字符串,并将其添加为指南 GUI 代码,并使用以下代码。

handles.currentImage = imread(get(handles.Textbox1,'string'));
handles.currentImage = Addnoise(handles.currentImage); %addnoise is the function i created. 
imwrite(handles.currentImage, 'photonoise', 'png');
pathname = 'C:\Documents and Settings\staff\My Documents\MATLAB\photonoise.png';
set(handles.Textbox1, 'string', fullfile(pathname));

但是我完全不知道如何将字符串格式设为.raw。如果有一些我不知道的代码需要添加到 GUI 或 Addnoise 函数中,请告诉我,我将不胜感激。

4

1 回答 1

0

由于.raw不支持图像imwrite,因此您将无法使用它。但是,由于.raw是一种未压缩的图像格式,因此可以使用fwrite.

这是一个使用只有零(黑色)的 300 x 100 矩阵的示例:

cmodel=(zeros(300,100,1));
fid=fopen('blackimage.raw','w+');
cnt=fwrite(fid,cmodel,'uint8');
fclose(fid);

因此,在您的情况下,您需要将其修改为以下内容:

fid=fopen('myimage.raw','w+');
cnt=fwrite(fid,handles.currentImage,'uint8');
fclose(fid);

警告:我对.raw格式的了解非常有限,imread所以请用一粒盐(甚至是立方体)食用

于 2013-06-20T14:56:53.937 回答