SOGO論壇

標題: MATLAB轉成C語言 或者能幫忙寫一個中央加權中值濾波器的C語言 [列印本頁]

作者: louis1210    時間: 2012-8-29 15:46:11     標題: MATLAB轉成C語言 或者能幫忙寫一個中央加權中值濾波器的C語言

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語言的中央加權中值濾波器

如果是北部的朋友 或許可以請你喝杯星巴克 其他縣市的 我看看有甚麼東西能贈送的 在寄給大大們




歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM