| 查看: 3238 | 回復(fù): 14 | ||||
yibanxinyu銅蟲 (小有名氣)
|
[交流]
【求助】幫我編個(gè)程啊~C語言,C++,Matlab,VB...都行~ 已有4人參與
|
|||
|
拜托各位編程高手幫我編個(gè)程啊,高金幣懸賞哦~是關(guān)于圖像處理的,用C語言,C++,Matlab,VB等等都行。 編寫處理“K近鄰平滑濾波”的程序,原理是:以待處理的像素作為中心,取一個(gè)3X3的模板,在模板中選擇5個(gè)與待處理像素的值最接近的像素,將這5個(gè)像素的均值替換原來的像素值。 舉個(gè)直觀的例子吧,給定3X3的模板如下: 2 2 3 6 8 7 (6+7+5+6+8)/5=6.4=6(四舍五入) 5 6 8 最后中心像素值8被6替換。 編程的時(shí)候不要用具體的像素值,用代號(hào)(比如說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嗎?因?yàn)槲业恼n程也比較緊。不是每天都能coding阿。 而且我也不是CS專業(yè)的……每天coding只能是夢(mèng)想了…… ![]() 另外: 1、只考慮3X3矩陣是不是說只給出關(guān)鍵代碼就可以了?其他部分你自己實(shí)現(xiàn)嗎? 還是需要全部的,可以裝載某一個(gè)圖形的。 2、不用給一個(gè)GUI界面吧?我可以寫一個(gè)CUI界面的。這樣簡(jiǎn)單一點(diǎn)。 [ Last edited by holmescn on 2010-4-27 at 12:53 ] |
銅蟲 (小有名氣)
金蟲 (正式寫手)
金蟲 (正式寫手)
|
定義一個(gè)和原圖像同樣大小的矩陣,然后將處理好的每一個(gè)像素賦值到新矩陣中就可以了。實(shí)現(xiàn)過程用二重循環(huán),將模板在原圖像覆蓋一遍。 “將這5個(gè)像素的均值替換原來的像素值”可以對(duì)中心像素的八領(lǐng)域均減去中心像素的灰度,取絕對(duì)值后排序找到最小的五個(gè)對(duì)應(yīng)的原像素,然后取均值~~ 這是我思路~不妥之處望指出~~ |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 311求調(diào)劑 +7 | 冬十三 2026-03-15 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 302求調(diào)劑 +8 | 負(fù)心者當(dāng)誅 2026-03-11 | 8/400 |
|
|
[考研] 一志愿,福州大學(xué)材料專碩339分求調(diào)劑 +3 | 木子momo青爭(zhēng) 2026-03-15 | 3/150 |
|
|
[考研] 286求調(diào)劑 +3 | lemonzzn 2026-03-16 | 5/250 |
|
|
[基金申請(qǐng)]
今年的國基金是打分制嗎?
50+3
|
zhanghaozhu 2026-03-14 | 3/150 |
|
|
[考研] 一志愿211 0703方向310分求調(diào)劑 +3 | 努力奮斗112 2026-03-15 | 3/150 |
|
|
[考研] 304求調(diào)劑 +3 | 曼殊2266 2026-03-14 | 3/150 |
|
|
[考研] 285求調(diào)劑 +6 | ytter 2026-03-12 | 6/300 |
|
|
[考研] 一志愿華中師范071000,325求調(diào)劑 +6 | RuitingC 2026-03-12 | 6/300 |
|
|
[考研] 0856求調(diào)劑 +3 | 劉夢(mèng)微 2026-03-15 | 3/150 |
|
|
[考研] 326求調(diào)劑 +3 | mlpqaz03 2026-03-15 | 3/150 |
|
|
[考研] 294求調(diào)劑 +3 | Zys010410@ 2026-03-13 | 4/200 |
|
|
[基金申請(qǐng)] 現(xiàn)在如何回避去年的某一個(gè)專家,不知道名字 +3 | zk200107 2026-03-12 | 6/300 |
|
|
[考研] 266求調(diào)劑 +4 | 學(xué)員97LZgn 2026-03-13 | 4/200 |
|
|
[考研] 招收0805(材料)調(diào)劑 +3 | 18595523086 2026-03-13 | 3/150 |
|
|
[考研] 285 求調(diào)劑 資源與環(huán)境 一志愿北京化工大學(xué) +3 | 未名考生 2026-03-10 | 3/150 |
|
|
[考研] 332求調(diào)劑 +3 | zjy101327 2026-03-11 | 6/300 |
|
|
[考研] 337一志愿華南理工0805材料求調(diào)劑 +7 | mysdl 2026-03-11 | 9/450 |
|
|
[考研] 321求調(diào)劑(食品/專碩) +3 | xc321 2026-03-12 | 6/300 |
|
|
[考研] 420求調(diào)劑 +4 | 莫向外求11 2026-03-10 | 6/300 |
|