zoukankan      html  css  js  c++  java
  • (实验操作)掩膜高通滤波filter命令,锐化的matlab 处理 包括锐化前处理;模糊化锐化

    实验操作资料比较粗糙,基本上,是边做实验,边做记录.

    命令操作如下:

    >> clear
    >> i=imread('plane.jpg');

    >>  I=rgb2gray(i);
    >> imagetype=isgray(I)
    Warning: isgray is obsolete and may be removed in the future.
    See product release notes for more information.
    > In isgray at 27

    imagetype =

         1

    >> I=double(I);
    >> imshow(I);
    >> H2=[-1 -1 -1;-1 -9 -1;-1 -1 -1];
    >> J1=filter2(H2,I); 
    >> figure,imshow(J1,map);$//其实,在这里,这个,这个map是应该去掉的,不然会出错,除非一开始,就用

    $//[i,map]=imread('plane.jpg');这个命令读取图片.



    ??? Undefined function or variable 'map'.

    >> [i,map]=imread('plane.jpg');
    >>  figure,imshow(J1,map);

    >> M=[1 1 1;1 1 1;1 1 1]/9;
    >> J2=filter2(M,I);
    >> J3=I-J2;
    >> figure,imshow(J3,map);
    >>  figure,imshow(J1);
    >> figure,imshow(J3);
    >>

    采取其他方法,进行滤波,结果差不多说明,锐化前,做好进行一些处理,

    >> I=rgb2gray(i);
    >>  imwrite(I,'plane_0.JPG','JPG');
    >> info=imfinfo('plane_0.JPG');
    >> info

    info =

               Filename: 'plane_0.JPG'
            FileModDate: '16-May-2009 13:10:14'
               FileSize: 15252
                 Format: 'jpg'
          FormatVersion: ''
                  Width: 640
                 Height: 480
               BitDepth: 8
              ColorType: 'grayscale'
        FormatSignature: ''
        NumberOfSamples: 1
           CodingMethod: 'Huffman'
          CodingProcess: 'Sequential'
                Comment: {}

    >> subplot(2,2,1),imshow(I);title('原图像');%显示原图像
    >> H=fspecial('sobel');
    >> I2=filter2(H,I);
    >> subplot(2,2,2);%显示sobel算子锐化图像
    >> imshow(I2);
    >> subplot(2,2,2);%显示sobel算子锐化图像
    >> H=fspecial('prewitt');%应用prewitt算子锐化图像
    >> I3=filter2(H,I);%prewitt算子滤波锐化
    >> subplot(2,2,3);imshow(I3); %显示prewitt算子锐化图像
    >> title('prewitt算子锐化图像');
    >> H=fspecial('log'); %应用log算子锐化图像
    >> I4=filter2(H,I); %log算子滤波锐化
    >> subplot(2,2,4);imshow(I4);%显示log算子锐化图像
    >> title('log算子锐化图像')
    >>
    >>

    锐化前的预处理:

    锐化分频域和时域两种方法,在时域可以使用简单的颜色变换来进锐化,但更为合理的做法是在频域通过卷积的方式进行锐化和模糊处理,如最常见的是高斯算法;

    关键词:

    高斯算法

    模糊化锐化

    中值滤波和领域平均法滤波

    先高斯滤波,再锐化

    >> [i,map]=imread('plane.jpg');

    >> I=rgb2gray(i);

    >> Img = double(I);
    >> alf=3;
    >> n=10;%定义模板大小
    n1=floor((n+1)/2);%计算中心
    for i=1:n
        for j=1:n
          b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf))/(4*pi*alf);
        end
    end
    Img1 = imfilter(I,b,'conv'); 
    subplot(121),imshow(I);title('原图')
    subplot(122),imshow(Img1),title('高斯滤波')
    >> H=fspecial('prewitt');%应用prewitt算子锐化图像
    >>  I3=filter2(H,Img1);%rewitt算子滤波锐化
    >> subplot(2,2,3);imshow(I3) %显示prewitt算子锐化图像
    >>

    image

    这个结果显然是不能接受的,比起前面的实验,效果是差得多,或许它实现的不是锐化这个功能,而是一个误操作,

  • 相关阅读:
    【算法•日更•第三十四期】最大流算法
    【算法•日更•第三十三期】网络流基础知识(最大流)
    【原】Java学习笔记017
    【原】Java学习笔记016
    【原】Java学习笔记015
    【原】Java学习笔记014
    【原】Java学习笔记013
    【原】Java学习笔记012
    【原】Java学习笔记011
    【原】Java学习笔记010
  • 原文地址:https://www.cnblogs.com/fleetwgx/p/1458237.html
Copyright © 2011-2022 走看看