| 查看: 3249 | 回復(fù): 14 | ||||
yibanxinyu銅蟲 (小有名氣)
|
[交流]
【求助】幫我編個程啊~C語言,C++,Matlab,VB...都行~ 已有4人參與
|
|||
|
拜托各位編程高手幫我編個程啊,高金幣懸賞哦~是關(guān)于圖像處理的,用C語言,C++,Matlab,VB等等都行。 編寫處理“K近鄰平滑濾波”的程序,原理是:以待處理的像素作為中心,取一個3X3的模板,在模板中選擇5個與待處理像素的值最接近的像素,將這5個像素的均值替換原來的像素值。 舉個直觀的例子吧,給定3X3的模板如下: 2 2 3 6 8 7 (6+7+5+6+8)/5=6.4=6(四舍五入) 5 6 8 最后中心像素值8被6替換。 編程的時候不要用具體的像素值,用代號(比如說a、b、c......)代替就好了。 多謝各位高手了,小女感激不盡! [ Last edited by yibanxinyu on 2010-4-25 at 20:37 ] |
學(xué)海無涯! |
|
% K近鄰平滑濾波 % input - 輸入圖像矩陣;n - 模板大。3,5,7...);k - 近鄰數(shù) % output - 濾波處理后的圖像矩陣 function output = emuchKNNMeanFilter(input, n, k) [row, col] = size(input); edgeWidth = floor(n / 2); output = zeros(row - edgeWidth * 2, col - edgeWidth * 2); for i = 1 + edgeWidth : row - edgeWidth for j = 1 + edgeWidth : col - edgeWidth mask = input(i - edgeWidth : i + edgeWidth,... j - edgeWidth : j + edgeWidth); center = input(i, j); vertex = Matrix2Vertex(mask); neighbour = GetNeighbour(vertex, center, k); output(i - 1, j - 1) = mean(neighbour); end end end % 根據(jù)輸入的向量與中心值取近鄰值 % vertex - 輸入向量;center - 中心值;k - 近鄰數(shù) % neighbour - 近鄰值 function neighbour = GetNeighbour(vertex, center, k) distance = abs(vertex - center); [sortDistance, sortIndex] = sort(distance,1); neighbour = vertex(sortIndex(2 : k + 1)); end % 將矩陣轉(zhuǎn)換為向量 function vertex = Matrix2Vertex(matrix) [row, col] = size(matrix); vertex = zeros(row * col, 1); for i = 1 : row * col vertex(i) = matrix(i); end end 思路與7樓一致 調(diào)用方法: 將以上代碼存為文件emuchKNNMeanFilter.m,在matlab command window中調(diào)用。 例如,有矩陣 a = 164 24 196 119 209 51 200 139 53 23 250 244 125 218 11 129 247 86 103 67 39 20 147 38 224 198 183 42 60 84 181 163 33 191 74 29 211 185 56 85 172 197 3 228 116 78 146 202 調(diào)用程序進行處理:b = emuchKNNMeanFilter(a, 3, 5) 得到處理后的矩陣 b = 180.6 61.2 101.6 189.6 126.8 40.4 56.4 171.2 92.2 53.8 56.2 121.2 170.8 132.2 45.2 53.4 191.6 105.8 114.8 60 179.8 95 71.4 164.2 |
金蟲 (正式寫手)
銅蟲 (小有名氣)
金蟲 (正式寫手)
|
我可以嘗試一下。不過,有deadline嗎?因為我的課程也比較緊。不是每天都能coding阿。 而且我也不是CS專業(yè)的……每天coding只能是夢想了…… ![]() 另外: 1、只考慮3X3矩陣是不是說只給出關(guān)鍵代碼就可以了?其他部分你自己實現(xiàn)嗎? 還是需要全部的,可以裝載某一個圖形的。 2、不用給一個GUI界面吧?我可以寫一個CUI界面的。這樣簡單一點。 [ Last edited by holmescn on 2010-4-27 at 12:53 ] |
銅蟲 (小有名氣)
金蟲 (正式寫手)
金蟲 (正式寫手)
|
定義一個和原圖像同樣大小的矩陣,然后將處理好的每一個像素賦值到新矩陣中就可以了。實現(xiàn)過程用二重循環(huán),將模板在原圖像覆蓋一遍。 “將這5個像素的均值替換原來的像素值”可以對中心像素的八領(lǐng)域均減去中心像素的灰度,取絕對值后排序找到最小的五個對應(yīng)的原像素,然后取均值~~ 這是我思路~不妥之處望指出~~ |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 070300化學(xué)319求調(diào)劑 +4 | 錦鯉0909 2026-03-17 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 085601求調(diào)劑 +4 | Du.11 2026-03-16 | 4/200 |
|
|
[考研] 085600材料與化工求調(diào)劑 +5 | 緒幸與子 2026-03-17 | 5/250 |
|
|
[考研] 211本,11408一志愿中科院277分,曾在中科院自動化所實習(xí) +6 | Losir 2026-03-12 | 7/350 |
|
|
[考研] 289求調(diào)劑 +6 | 步川酷紫123 2026-03-11 | 6/300 |
|
|
[考研] 考研調(diào)劑 +3 | 淇ya_~ 2026-03-17 | 5/250 |
|
|
[考研] 278求調(diào)劑 +3 | Yy7400 2026-03-13 | 3/150 |
|
|
[考研] 一志愿,福州大學(xué)材料專碩339分求調(diào)劑 +3 | 木子momo青爭 2026-03-15 | 3/150 |
|
|
[考研] 070303 總分349求調(diào)劑 +3 | LJY9966 2026-03-15 | 5/250 |
|
|
[考研] 0703化學(xué)調(diào)劑 290分有科研經(jīng)歷,論文在投 +7 | 膩膩gk 2026-03-14 | 7/350 |
|
|
[考研] 26考研一志愿中國石油大學(xué)(華東)305分求調(diào)劑 +3 | 嘉年新程 2026-03-15 | 3/150 |
|
|
[考研] 材料工程327求調(diào)劑 +3 | xiaohe12w 2026-03-11 | 3/150 |
|
|
[考研] 學(xué)碩285求調(diào)劑 +13 | Wisjxn 2026-03-12 | 46/2300 |
|
|
[考研] 290求調(diào)劑 +9 | ADT 2026-03-11 | 9/450 |
|
|
[考研] (081700)化學(xué)工程與技術(shù)-298分求調(diào)劑 +12 | 11啦啦啦 2026-03-11 | 35/1750 |
|
|
[考研] 求b區(qū)學(xué)校調(diào)劑 +3 | 周56 2026-03-11 | 3/150 |
|
|
[考研] 求調(diào)劑 +7 | 18880831720 2026-03-11 | 7/350 |
|
|
[考研] 材料專碩350 求調(diào)劑 +4 | 王金科 2026-03-12 | 4/200 |
|
|
[考研] 化工學(xué)碩306求調(diào)劑 +9 | 42838695 2026-03-12 | 9/450 |
|
|
[考研] 270求調(diào)劑 085600材料與化工專碩 +3 | YXCT 2026-03-11 | 3/150 |
|