我在创建的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函数,请告诉我,我将不胜感激。
答案 0 :(得分:0)
由于.raw
不支持imwrite
图像,因此您将无法使用它。但是,由于.raw
是未压缩的图像格式,因此可以使用fwrite
轻松完成此操作。
这是example使用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
也是如此,所以请带上一粒(甚至是立方体)盐