zoukankan      html  css  js  c++  java
  • [数字图像处理]3*3模板灰度图像空间域变换

     1 function [  ] = picSmooth0(A ,s)
     2 %picSmooth0 此处显示有关此函数的摘要
     3 %picSmooth0(A,s)  A为图像矩阵    s为3*3变换矩阵  
     4 %   此处显示详细说明
     5 [M,N,a]=size(A);
     6 if a == 3
     7     B=rgb2gray(A);
     8 else
     9     B=A;
    10 end
    11 B=double(B);    %防止溢出
    12 P=zeros(M,N);
    13 k=0;
    14 sum=0;
    15 [m,n]=size(s);
    16 if( m~=3 || n~=3)
    17        fprintf('请输入正确的3*3空间域平滑模板');
    18 else
    19         for i=1:3
    20             for j=1:3
    21                 sum=sum+s(i,j);
    22             end
    23         end
    24         
    25         for i=1:M
    26             for j = 1:N
    27                 k=0;
    28                 if((0<i-1&&i-1<=M) && (0<j-1&&j-1<=N))
    29                     k=k+s(1,1)*B(i-1,j-1);
    30                 end
    31                 if(0<i&&i<=M && 0<j-1&&j-1<=N)
    32                     k=k+s(2,1)*B(i,j-1);
    33                 end
    34                 if(0<i+1&&i+1<=M && 0<j-1&&j-1<=N)
    35                     k=k+s(3,1)*B(i+1,j-1);
    36                 end
    37                     
    38                 if(0<i-1&&i-1<=M && 0<j&&j<=N)
    39                     k=k+s(1,2)*B(i-1,j);
    40                 end
    41                 if(0<i&&i<=M && 0<j&&j<=N)
    42                     k=k+s(2,2)*B(i,j);
    43                 end
    44                 if(0<i+1&&i+1<=M && 0<j&&j<=N)
    45                     k=k+s(3,2)*B(i+1,j);
    46                 end
    47                     
    48                 if(0<i-1&&i-1<=M && 0<j+1&&j+1<=N)
    49                     k=k+s(1,3)*B(i-1,j+1);
    50                 end
    51                 if(0<i&&i<=M && 0<j+1&&j+1<=N)
    52                     k=k+s(2,3)*B(i,j+1);
    53                 end
    54                 if(0<i+1&&i+1<=M && 0<j+1&&j+1<=N)
    55                     k=k+s(3,3)*B(i+1,j+1);
    56                 end
    57                 P(i,j)=k;
    58             end
    59         end            
    60 end
    61 P=P/sum;
    62 P=uint8(P);
    63 B=uint8(B);
    64 
    65 figure;
    66 imshow(B);
    67 figure;
    68 imshow(P);
    69 
    70 end

     转载请注明来源

  • 相关阅读:
    python变量及简单数据类型
    python函数小案例
    python字符串和列表小案例
    python循环输出
    Jmeter测试工具
    操作系统-进程管理~
    操作系统~
    组成原理第一章笔记~
    分时间段(年份或月份)统计,没有数字补0 Java(替代 MYSQL) 做法
    组成原理复习概略
  • 原文地址:https://www.cnblogs.com/starle/p/5539686.html
Copyright © 2011-2022 走看看