【问题标题】:Updating String in a matlab GUI在 matlab GUI 中更新字符串
【发布时间】:2013-06-21 00:41:59
【问题描述】:

我在使用我创建的 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 函数中,请告诉我,我将不胜感激。

【问题讨论】:

  • “.raw”格式是什么意思?我不确定您要完成什么,将图像写入文本框?
  • imwrite 似乎不支持 .raw 图像。 @macduff 我相信.raw 是一种未压缩的图像格式。
  • 顺便说一句,您的标题和实际问题并不真正匹配。我建议重写标题。

标签: matlab


【解决方案1】:

由于imwrite 不支持.raw 图像,您将无法使用它。但是,由于.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 的了解非常有限,所以请用一粒盐(甚至可能是一个立方体)食用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多