微胖少妇激情888AV,精品大屁股,无码中文婷婷超碰 ,最新免费成人性爱视频

卷積模板的翻譯 matlab練習(xí)程序(圖像濾波時(shí)的邊界處理)

當(dāng)前位置:首頁>贈(zèng)卵IVF-ET

卷積模板的翻譯 matlab練習(xí)程序(圖像濾波時(shí)的邊界處理)
  • 作者:admin
  • 日期:2023-12-08
  • 點(diǎn)擊量:32

我們?cè)诰帉戇^濾器程序時(shí),通常會(huì)使用矩陣模板對(duì)原始圖像進(jìn)行卷積。這時(shí)候我們?cè)谔幚韴D像邊界時(shí)一般選擇忽略邊緣。但是如果模板比較大,處理效果會(huì)很差。它將是原始圖像,過濾后的結(jié)果在中間。雖然用Matlab的imfilter可以解決,但還是通過過濾的原理自己實(shí)踐。

模板和圖像之間共有 16 種關(guān)系。我粗略地畫了它們。前三個(gè)小矩形是模板卷積模板的翻譯,大矩形是圖像卷積模板的翻譯,*后一個(gè)是大矩形,小矩形是圖像。這就是卷積時(shí)圖像和模板之間的所有關(guān)系。

好像是寫16個(gè)if判斷,不過沒必要。我們只需要在卷積的時(shí)候判斷模板的四個(gè)邊界和圖像的四個(gè)邊界之間的關(guān)系。有兩對(duì)相對(duì)坐標(biāo),一對(duì)是圖像的卷積范圍,另一對(duì)是模板的卷積范圍。先說一下如何表達(dá)圖像的卷積范圍。如果當(dāng)前處理點(diǎn)為(i,j),模板大小為2*r+1(我這里使用了對(duì)稱奇數(shù)模板。如果模板的像素邊界是偶數(shù),處理起來會(huì)很困難,這里我簡(jiǎn)單地把奇數(shù)變成偶數(shù),原理類似)。8個(gè)邊界可以這樣表示,圖像為1表示圖像的上邊緣,m表示圖像的下邊緣,1表示圖像的左邊緣,n表示圖像的右邊緣,ir表示模板的上邊緣,i+r表示模板的下邊緣,jr表示模板的左邊緣,j+r代表模板的右邊緣。通過這四對(duì)的組合,你可以擁有16種關(guān)系。有關(guān)詳細(xì)信息,請(qǐng)參閱下面的代碼。結(jié)合代碼看注釋更清晰。

主文件

clear all;close all;clc;r=20;w=fspecial('average',[2*r+1 2*r+1]);img=imread('lena.jpg');img=mat2gray(img);[m n]=size(img);imshow(img);imgn=filterim(img,w);figure;imshow(mat2gray(imgn));imgn=img;for i=r+1:m-r    for j=r+1:n-r                        imgn(i,j)=sum(sum(img(i-r:i+r,j-r:j+r).*w));        endendfigure;imshow(mat2gray(imgn));figure;img=imfilter(img,w);imshow(mat2gray(img))

filterim.m(實(shí)現(xiàn)主要功能):

function imgn=filterim(img,w)    [r r]=size(w);    [m n]=size(img);    if mod(r,2)==0        r=r+1;        w=imresize(w,[r r]);    end    imgn=zeros(m,n);    r=floor(r/2);    for i=1:m        for j=1:n                                        %圖像需要獲得四個(gè)邊界的卷積范圍,模板只需要獲得*上面和*左面就可以了,因?yàn)閳D像和模板兩個(gè)卷積范圍是一樣的。                if i-r<1                %判斷模板上邊緣和圖像上邊緣的關(guān)系                    img_up=1;               %如果當(dāng)前像素的高小于模板的一半,那么選擇圖像的上邊緣作為卷積圖像的上邊緣                    mark_up=r-i+1;          %模板的上邊緣使用和圖像相交的上邊緣                else                    img_up=i-r;             %使用當(dāng)前像素的高減去模板的一半作為卷積圖像的上邊緣                    mark_up=1;              %使用模板的*上邊緣作為卷積模板的上邊緣                end                if i+r>m                %判斷模板下邊緣和圖像下邊緣的關(guān)系                    img_down=m;             %如果當(dāng)前像素的高加上模板的一半超過整個(gè)圖像的高,那么卷積圖像的下邊緣使用整個(gè)圖像的下邊緣                else                    img_down=i+r;           %否則卷積圖像的下邊緣使用當(dāng)前像素的高加上模板的一半                end                if j-r<1                %判斷模板左邊緣和圖像左邊緣的關(guān)系                    img_left=1;             %如果當(dāng)前像素的寬小于模板的一半,那么選擇圖像的左邊緣作為卷積圖像的左邊緣                    mark_left=r-j+1;        %模板的左邊緣使用和圖像相交的左邊緣                else                    img_left=j-r;           %使用當(dāng)前像素的寬減去模板的一半作為卷積圖像的左邊緣                    mark_left=1;            %使用模板的*左邊緣作為卷積模板的左邊緣                end                if j+r>n                %判斷模板右邊緣和圖像右邊緣的關(guān)系                    img_right=n;            %如果當(dāng)前像素的寬加上模板的一般超過整個(gè)圖像的寬,那么卷積圖像的右邊緣使用整個(gè)圖像的右邊緣                else                    img_right=j+r;          %否則卷積圖像的右邊緣使用當(dāng)前像素的寬加上模板的一半                end                imgn(i,j)=sum(sum(img(img_up:img_down,img_left:img_right).*w(mark_up:mark_up+(img_down-img_up),mark_left:mark_left+(img_right-img_left))));%/((img_down-img_up+1)*(img_right-img_left+1));                                %卷積圖像上邊緣:下邊緣,左邊緣:右邊緣  %卷積模板上邊緣:上邊緣+(豎直卷積范圍),卷積模板左邊緣:左邊緣+(水平卷積范圍)                             end    endend

說實(shí)話,寫這篇評(píng)論我很糾結(jié)。我已經(jīng)盡力把評(píng)論寫清楚了,雖然我還是覺得沒有解釋清楚。我真的需要鍛煉我的寫作和表達(dá)能力。

下面是渲染圖:

原圖

自己過濾時(shí)邊界處理的效果

無邊界處理的通常效果

Matlab函數(shù)處理結(jié)果

卷積模板的翻譯 matlab練習(xí)程序(圖像濾波時(shí)的邊界處理)

我的效果基本接近matlab自帶的效果,但是速度好像慢了很多。matlab自帶的函數(shù)可以用匯編來處理??傊?,算法是這樣的。


亚洲欧美日韩国产| 欧美色视频一区二区三区| 蜜桃视频免费在线观看| 家庭乱伦视频一区二区三区| 国产精品乱码妇女bbbb| 呦呦在线免费观看视频| 国产美女露脸口爆吞精| 婷婷色婷婷| jzjzjz亚洲丰满少妇| 天堂在线一区| 婷婷婷婷婷婷婷婷| 精品成人久久久三级蜜桃| 久久人妻少妇| 日本一区二区三区精品福利视频| 欧美综合在线观看第十页| 久久99一区二区| 国产精品户露av在线户外直播| 九九色| 狠狠| 久久精中文字幕| 国产欧洲在线观看| 亚洲无码成人网站免费播放| 精品国产无码久久久久久| 99精品众筹模特自拍视频| 欧美日韩黄片儿| 看性色到国产| 久久久久亚洲AV无码网站| 国产久热精品无码激情| 黄色免费av| 日韩av激情| 午夜麻豆| 亚洲中文字幕久久| 久久久99| 精品成人免费一区二区| 松滋市| 91一区二区三区| 韩国三级网站| 九九久久精品| #www.sxszb.com| 欧美熟妇另娄久久久久久| 热东京|