[問題]請問Subsample要怎麼取點?

看板MATLAB作者 (白晝之倫)時間10年前 (2015/05/18 14:01), 10年前編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
各位大大,大家好: 小弟最近需要使用Matlab作影像處理, 以前比較沒有接觸過Matlab,所以對其有些不懂。 我的任務,簡單的說,就是在軟體上簡化濾波係數, 因此不能使用imresize去跑, 但我遇到問題了:(以下是我寫的程式碼) Texture = imread('Demo_texture_input.bmp'); ftr = [-0.032 0 0.284 0.496 0.284 0 -0.032]; h = imfilter(Texture,ftr); t = h(1:end,1:5:end); imwrite(t,'Lan.jpg'); 1.假設我需要把圖片長邊縮成 5/6倍該怎麼做呢?(960*540 > 800*540) t = h(1:end,1:N:end) 變成每 N 點取一點...我怎麼爬文都找不到怎麼每6點取5點, 跪求大大們幫忙。 2.為什麼我這樣寫,本來是RGB三色的圖片處裡完會變成三張(看起來是YUV)並列在一起呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.156.69 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1431928863.A.2CF.html

05/18 14:14, , 1F
setdiff(1:N, 1:5:N)
05/18 14:14, 1F
請問 C大 能不能再說清楚一點,我爬了一下文 setdiff 是差集, 所以是每5個點去掉一點的意思嗎?

05/18 14:57, , 2F
嗯,便是如此,你要每6點取5點就每6點去掉1點
05/18 14:57, 2F

05/18 14:58, , 3F
你可以直接用MATLAB doc功能去看setdiff的功能
05/18 14:58, 3F
感恩!那可以在請問 問題2的狀況要怎麼排除嗎?為何會輸出會是YUV三個分開呢? 是不是我宣告的格式不對呀?

05/18 15:13, , 4F
我不熟影像處理,你得等其他人回覆
05/18 15:13, 4F
好!感謝你的回答! ※ 編輯: boys5566 (140.116.156.69), 05/18/2015 15:22:05

05/23 22:18, , 5F
round(linspace(1,960,800))
05/23 22:18, 5F

05/23 22:19, , 6F
第二個問題是你的照片是三維的,所以你的t要改成
05/23 22:19, 6F

05/23 22:20, , 7F
t = h(巴拉巴拉, 巴拉巴拉, :)
05/23 22:20, 7F
文章代碼(AID): #1LMO0VBF (MATLAB)
文章代碼(AID): #1LMO0VBF (MATLAB)