0

指定した軸から画像を保存したい。エラーが発生し続けYou may not have permission to writeます。プッシュボタンとして保存するための私のコードは次のとおりです。

axes(handles.axes3);
[FileName, PathName] = uiputfile('*bmp', 'Save As');
Name = fullfile(FileName, PathName);
imwrite(handles.TReg, Name, 'bmp');

また、handles.TReg別の関数で定義された変換された画像です。

私はここで私の誤りを見つけることができないようです、どんな考えでもありがたいです。

コードを使用する場合は編集します。

axes(handles.axes3);
[FileName, PathName] = uiputfile('*bmp', 'Save As');
Name = fullfile(FileName, PathName);
imwrite(handles.TReg, 'Name', 'bmp');

ファイルはName.bmpとして適切なディレクトリに保存されます。ただし、元のコードで保存しようとすると、エラーも次のように表示されることに気付きました(このビットを見逃してしまいました):

Can't open file "Image1\C:\Users\Shinobii\Documents\MATLAB\" for writing.

パス名は次のように読む必要があると思います

"C:\Users\Shinobii\Documents\MATLAB\Image1"

これが問題になる可能性がありますか?

4

3 に答える 3

2

小さな間違い:

[FileName, PathName] = uiputfile('*.bmp', 'Save As'); %# <-- dot
Name = fullfile(PathName,FileName);  %# <--- reverse the order of arguments
imwrite(img, Name, 'bmp');

また、ユーザーがダイアログ ボックスをキャンセルしていないことを確認することをお勧めします。

[FileName, PathName] = uiputfile('*.bmp', 'Save As');
if PathName==0, return; end    %# or display an error message
于 2012-07-26T18:18:32.593 に答える
1

パスとファイル名を確認し、手動で imwrite を呼び出して画像を保存してみてください。これはおそらく、GUI やボタンのコールバックとは何の関係もありませんが、ファイルのアクセス許可やパス名のいずれかとは関係ありません。

于 2012-07-26T14:54:40.513 に答える
0

繰り返しますが、もっと早く見つけておくべきだったばかげた間違いのように思えます。

axes(handles.axes3);
[FileName, PathName] = uiputfile('*bmp', 'Save As');
Name = fullfile(PathName, FileName);
imwrite(handles.TReg, Name, 'bmp');

Nameと を反転する必要がFileNameありPathNameました。

ご協力いただきありがとうございます!

于 2012-07-26T18:18:09.850 に答える