SOGO論壇
  登入   註冊   找回密碼
查看: 1398|回覆: 0
列印 上一主題 下一主題

[問題求助] MATLAB轉成C語言 或者能幫忙寫一個中央加權中值濾波器的C語言 [複製連結]

Rank: 2

狀態︰ 離線
跳轉到指定樓層
1
發表於 2012-8-29 15:46:11 |只看該作者 |倒序瀏覽
close all;
clear all;
kk=3;       %mask window size
ww=(kk-1)^2+1;

a=imread('eight.tif'); %開圖
B=imnoise(a,'salt & pepper',0.2);%加入椒鹽雜訊
[mm,nn]=size(a); %定義為M*N的矩陣

bb=[B(:,1:floor(kk/2)) B B(:,nn-(floor(kk/2)-1):nn)]; %增加矩陣行數
zz=[bb(1:floor(kk/2),:);bb;bb(mm-(floor(kk/2)-1):mm,:)]; % 增加矩陣列數
imshow(a); %跑原圖
[mm,nn]=size(zz);
image=im2double(zz); %換成雙浮點運算

for i=floor(kk/2)+1:mm-floor(kk/2) %取i為列數的距離
   
   
    for j=floor(kk/2)+1:nn-floor(kk/2) %取j為行數的距離
        
        tmp=image(i-floor(kk/2):i+floor(kk/2),j-floor(kk/2):j+floor(kk/2));   %取3*3矩陣數值
        im=tmp(:); %以直線排列
        mid=tmp(floor(kk/2)+1,floor(kk/2)+1); %算出中值
        repeat=mid*ones(ww-1,1); %算出重複次數
        im=[im ; repeat]; %帶回原值

        [sorted index]=sort(im); %帶入中心值排序
        cc=sort(im);
        ee=cc(floor(length(cc)/2)+1,1);
        image(i,j)=ee; %取圖檔最後位置
        
    end % j
end % i
qq=image((1+floor(kk/2)):mm-(floor(kk/2)*2),(1+floor(kk/2)):nn-(floor(kk/2)*2)); %切割回原圖大小
figure; imshow(zz);
figure; imshow(image);

能幫我把這篇轉成C語言中的 .C檔嗎? 或者是幫我用VC6.0寫一個純C語言的中央加權中值濾波器

如果是北部的朋友 或許可以請你喝杯星巴克 其他縣市的 我看看有甚麼東西能贈送的 在寄給大大們
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-6-8 05:08

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部