[繪圖] 關於做邊緣偵測的一些問題 已回收

看板MATLAB作者 (柚之香)時間15年前 (2011/01/04 22:53), 編輯推噓1(1015)
留言16則, 5人參與, 最新討論串1/2 (看更多)
[I,map] = imread(['我的圖片.jpg']); G = rgb2gray(I); cx = [-1 0 1 ; -2 0 2 ; -1 0 1]; cy = [-1 -2 -1 ; 0 0 0 ; 1 2 1]; Gx = filter2( cx, G ); Gy = filter2( cy, G ); F = abs( Gx ) + abs( Gy ); Bw_F = double(F)/255; 請問一下F跟Bw_F的差別在於? 為什麼以imshow顯示F的圖形卻消失了呢? 我看影像處理的書做到算出微分大小結果就結束了 如果我想用數值比較幾張圖片他們的清晰度優劣, 可以往什麼方向著手呢? 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.137.177

01/04 23:38, , 1F
影像邊緣偵測的方法有很多種,可以查查看sobel等方法
01/04 23:38, 1F

01/04 23:39, , 2F
再讓圖秀出來,就會很清楚了解優劣,更進而加以改善
01/04 23:39, 2F

01/04 23:41, , 3F
F 與 BW_F 的差別只是型態而已
01/04 23:41, 3F

01/04 23:42, , 4F
imshow 對型態為 double 的矩陣 (黑 ~ 白)=(0 ~ 1)
01/04 23:42, 4F

01/05 14:56, , 5F
我想問一下/255的用意,如果不加這個在imshow顯示的圖
01/05 14:56, 5F

01/05 14:57, , 6F
形就趨近於空白,為什麼呢?
01/05 14:57, 6F

01/05 16:30, , 7F
白色 不等於 空白
01/05 16:30, 7F

01/05 19:09, , 8F
想知道這程式是你寫的還是書上的範例
01/05 19:09, 8F

01/05 23:50, , 9F
/255 的用意就是你的原始灰階影像G是uint8,也就是亮度分成
01/05 23:50, 9F

01/05 23:52, , 10F
256等份,0~255整數,經過你的運算後,你的F雖然也是0~255,
01/05 23:52, 10F

01/05 23:53, , 11F
但是你的F在 workspace 中是以 double 型態儲存,而 imshow
01/05 23:53, 11F

01/05 23:54, , 12F
對於型態為 double 的矩陣他會把亮度設為0~1之間,
01/05 23:54, 12F

01/05 23:54, , 13F
你的F大部分都大於1,所以一片空白。
01/05 23:54, 13F

01/05 23:56, , 14F
uint8: 黑 ~ 白 = 0 ~ 255
01/05 23:56, 14F

01/05 23:56, , 15F
double: 黑 ~ 白 = 0 ~ 1
01/05 23:56, 15F

01/06 09:34, , 16F
這程式我覺得有問題的地方是F的值肯定在0~255?
01/06 09:34, 16F
文章代碼(AID): #1D8pHtfd (MATLAB)
文章代碼(AID): #1D8pHtfd (MATLAB)