看板 MATLAB 關於我們 聯絡資訊
各位大大,大家好: 小弟最近需要使用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
celestialgod: setdiff(1:N, 1:5:N) 05/18 14:14
請問 C大 能不能再說清楚一點,我爬了一下文 setdiff 是差集, 所以是每5個點去掉一點的意思嗎?
celestialgod: 嗯,便是如此,你要每6點取5點就每6點去掉1點 05/18 14:57
celestialgod: 你可以直接用MATLAB doc功能去看setdiff的功能 05/18 14:58
感恩!那可以在請問 問題2的狀況要怎麼排除嗎?為何會輸出會是YUV三個分開呢? 是不是我宣告的格式不對呀?
celestialgod: 我不熟影像處理,你得等其他人回覆 05/18 15:13
好!感謝你的回答! ※ 編輯: boys5566 (140.116.156.69), 05/18/2015 15:22:05
Jerrynet: round(linspace(1,960,800)) 05/23 22:18
Jerrynet: 第二個問題是你的照片是三維的,所以你的t要改成 05/23 22:19
Jerrynet: t = h(巴拉巴拉, 巴拉巴拉, :) 05/23 22:20