[問題]GUI圖形處理已回收

看板MATLAB作者 (幫幫)時間14年前 (2011/04/24 13:20), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/1
前面問過jeff大大,謝謝他的回答,讓我對GUI有進一步的了解 可是當我在對我讀進來的影像作處理的時候 發生問題 說明一下我的架構 左邊是listbox,listbox下面有個按鈕,右邊有兩個axes1(未處理影像放這裡)和 axes2(處理過的影像放這裡) 我的目標:想要點一下按鈕,讓處理過的影像顯示在axes2 以下是我的code --------------------------------------------------- function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a = dir('*.jpg') %假設圖檔為JPEG檔 for i = 1:size(a,1) % 取得幾個圖檔 picname{i} = a(i).name; % 將圖檔的名字放入cell內 end set(handles.listbox,'String',picname) % 這裡將圖檔的名字設定到listbox內 X = get(handles.listbox,'Value'); % 取得第幾個圖 pic = imread(a(X).name); % 讀圖此行,以下是我自己寫的 eh=histeq(pic1); axes(handles.axes2); imshow(eh); 卻跑出錯誤訊息 ??? Error using ==> iptcheckinput Function HISTEQ expected its first input, I, to be two-dimensional. Error in ==> histeq at 71 iptcheckinput(a,{'uint8','uint16','double','int16','single'}, ... Error in ==> hw>pushbutton1_Callback at 135 eh=histeq(pic); Error in ==> gui_mainfcn at 96 feval(varargin{:}); Error in ==> hw at 42 gui_mainfcn(gui_State, varargin{:}); Error in ==> guidemfile>@(hObject,eventdata)hw('pushbutton1_Callback',hObject,eventdata,guidata(hObject)) ??? Error while evaluating uicontrol Callback ------------------------------------------------------- 平常我在練習 >>p=imread('man.tif'); >>ph=histeq(p); >>imshow(ph); 這樣圖是跑得出來 用了GUI卻跑不出來 希望有人可以回答,感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.48.42 ※ 編輯: jeep168917 來自: 218.171.48.42 (04/24 13:20)

04/24 21:48, , 1F
我舉的例子是jpg 你畫得圖是tif....
04/24 21:48, 1F

04/25 09:35, , 2F
我把讀圖檔那邊改成讀tif檔,還是不行
04/25 09:35, 2F

04/25 10:19, , 3F
是筆誤還是? pic = XXXX; histeq(pic1) 變數不一樣
04/25 10:19, 3F

04/25 23:58, , 4F
那邊是筆誤,後來我查了一下histeq,他必須要uint8的
04/25 23:58, 4F

04/25 23:58, , 5F
格式才能做運算!
04/25 23:58, 5F

04/25 23:59, , 6F
再請問一下,我現在讓使用者讀檔,可是他一開始讀不到
04/25 23:59, 6F

04/26 00:00, , 7F
我先用fig檔然後點三角形,然後讓使用者讀檔案的資料夾
04/26 00:00, 7F

04/26 00:01, , 8F
可是他卻跑出錯誤
04/26 00:01, 8F
我的檔名是 demo ??? Error using ==> demo Too many input arguments. Error in ==> guidemfile>@(hObject,eventdata)demo('listbox_Callback',hObject,eventdata,guidata(hObject)) ??? Error while evaluating uicontrol Callback 然後我關掉跑出來程式的視窗,再按一次上面的綠色三角形 他就要我更改matlab directory 或者 add to path 我點add to path 就可以跑成功了 可是這樣就失去我要讓使用者自行選擇資料夾的原意 不好意思,麻煩了! ※ 編輯: jeep168917 來自: 218.171.59.227 (04/26 00:09)

04/26 15:40, , 9F
1. demo好像是matlab也有內建的指令 不建議用這種名字
04/26 15:40, 9F

04/26 15:40, , 10F
2. 那是因為你檔案的位置matlab不認識,setpath後即可
04/26 15:40, 10F

04/26 21:34, , 11F
可是我不是一開始有讓使用者選擇路徑了?還是會錯誤
04/26 21:34, 11F

04/26 23:21, , 12F
你選擇的是圖的路徑 我講的是程式所在的位置
04/26 23:21, 12F

04/27 13:28, , 13F
所以一開始程式的路徑要先設好?
04/27 13:28, 13F
文章代碼(AID): #1DixCP4x (MATLAB)