| 查看: 3247 | 回復(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)用程序進(jìn)行處理: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ā)表 | |
|---|---|---|---|---|
|
[考研] 268求調(diào)劑 +3 | 簡單點0 2026-03-17 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 材料與化工求調(diào)劑 +6 | 為學(xué)666 2026-03-16 | 6/300 |
|
|
[考研] 0703化學(xué)336分求調(diào)劑 +4 | zbzihdhd 2026-03-15 | 5/250 |
|
|
[考研] 考研化學(xué)學(xué)碩調(diào)劑,一志愿985 +4 | 張vvvv 2026-03-15 | 6/300 |
|
|
[考研] 26考研求調(diào)劑 +6 | 丶宏Sir 2026-03-13 | 6/300 |
|
|
[考研] 考研調(diào)劑 +3 | 淇ya_~ 2026-03-17 | 5/250 |
|
|
[考研] 267一志愿南京工業(yè)大學(xué)0817化工求調(diào)劑 +6 | SUICHILD 2026-03-12 | 6/300 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] 藥學(xué)383 求調(diào)劑 +3 | 藥學(xué)chy 2026-03-15 | 4/200 |
|
|
[考研] 0854控制工程 359求調(diào)劑 可跨專業(yè) +3 | 626776879 2026-03-14 | 9/450 |
|
|
[考研] 085600材料與化工 求調(diào)劑 +13 | enenenhui 2026-03-13 | 14/700 |
|
|
[考研] 070305求調(diào)劑 +3 | mlpqaz03 2026-03-14 | 4/200 |
|
|
[考研] 085601材料工程315分求調(diào)劑 +3 | yang_0104 2026-03-15 | 3/150 |
|
|
[考研] 285 求調(diào)劑 資源與環(huán)境 一志愿北京化工大學(xué) +3 | 未名考生 2026-03-10 | 3/150 |
|
|
[考研] 材料專碩288分求調(diào)劑 一志愿211 +4 | 在家想你 2026-03-11 | 4/200 |
|
|
[考研] 0703化學(xué)調(diào)劑 +4 | 快樂的香蕉 2026-03-11 | 4/200 |
|
|
[考研] 求材料調(diào)劑 +5 | 隔壁陳先生 2026-03-12 | 5/250 |
|
|
[考研] 274求調(diào)劑 +3 | S.H1 2026-03-12 | 3/150 |
|
|
[考研] 308求調(diào)劑 +3 | 是Lupa啊 2026-03-12 | 3/150 |
|
|
[考研] 290求調(diào)劑 +3 | ADT 2026-03-13 | 3/150 |
|