在MatlabGUI中更新字符串

在MatlabGUI中更新字符串,matlab,Matlab,在我创建的MatlabGUI中,使用按钮更新字符串时遇到了不少麻烦。我们的目标是让这个按钮在一个图像上预执行一个函数,该图像的字符串被放置在GUI的文本框中,然后用新图像的字符串替换旧字符串 我遇到的主要问题是,我需要文件采用.raw格式,但我不知道如何才能做到这一点。我可以将旧字符串替换为.png格式的新字符串,并使用以下代码将其添加到guide GUI代码中 handles.currentImage = imread(get(handles.Textbox1,'string')); hand

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

我遇到的主要问题是,我需要文件采用.raw格式,但我不知道如何才能做到这一点。我可以将旧字符串替换为.png格式的新字符串,并使用以下代码将其添加到guide 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函数中,请告诉我,我将不胜感激。

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

下面是一个使用300 x 100矩阵的示例,该矩阵仅包含零(黑色):

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

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

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

你所说的“.raw”格式是什么意思?我不确定您要完成什么,将图像写入文本框?
imwrite
似乎不支持
.raw
图像@macduff我相信
.raw
是一种未经压缩的图像格式。顺便说一句,你的标题和实际问题并不匹配。我建议重写标题。
fid=fopen('myimage.raw','w+');
cnt=fwrite(fid,handles.currentImage,'uint8');
fclose(fid);