精华内容
下载资源
问答
  • matlab数字图像处理实验

    千次阅读 2018-01-08 18:41:26
    (一)matlab数字图像处理实验-guide的简单使用教程 (二)matlab数字图像处理实验-图像的几何变换 (三)matlab数字图像处理实验-图像灰度变换处理 (四)matlab数字图像处理实验-平滑处理 未完待续··...
    展开全文
  • 实用文案 数字图像处理 实验指导书 标准文档 实用文案 目录 实验MATLAB 数字图像处理初步 实验二 图像的代数运算 实验三 图像增强 - 空间滤波 实验四 图像分割 3 标准文档 实用文案 实验MATLAB 数字图像处理...
  • matlab数字图像处理车牌识别
  • MATLAB数字图像处理实验三 实验一:用点检测模板检测图像中的点; 实验二:用线检测模板检测图像中的线,并检测图像中120°方向的线; 实验三:检测并显示图像用Sobel、Prewitt、Roberts、LoG及Canny边缘检测的结果...

    MATLAB数字图像处理实验三

    实验一:用点检测模板检测图像中的点;
    实验二:用线检测模板检测图像中的线,并检测图像中120°方向的线;
    实验三:检测并显示图像用Sobel、Prewitt、Roberts、LoG及Canny边缘检测的结果;
    实验四:对图像加标准差为20的高斯白噪声,重做2、3;
    实验五:对图像进行hough变换,在图中画出检测到的最长直线

    %%
    %%点检测
    f=imread('hei.png');
    I1=rgb2gray(f);
    w=[-1 -1 -1;-1 8 -1;-1 -1 -1];%点检测掩模
    gi=abs(imfilter(double(I1),w));
    T=max(gi(:));
    gi=gi>=T;
    subplot(211);imshow(I1);title('原图像');
    subplot(212);imshow(gi);title('点检测');
    
    %%
    %%线检测
    f=imread('hei.png');
    I=rgb2gray(f);
    w=[2 -1 -1;-1 2 -1;-1 2 -1];
    g=imfilter(double(I),w);
    subplot(2,1,1);imshow(f);title('原图像');
    subplot(2,1,2);imshow(g,[]);title('线检测120°方向');
    
    %%
    %边缘检测
    I=imread('hei.png');
    I=rgb2gray(I);
    BW1=edge(I,'sobel');   %应用 Sobel 算子进行滤波
    BW2=edge(I,'roberts'); %应用 Roberts 算子进行滤波
    BW3=edge(I,'prewitt'); %应用 Prewitt 算子进行滤波
    BW4=edge(I,'log');     %应用 LOG 算子进行滤波
    BW5=edge(I,'canny');   %应用 Canny 算子进行滤波
    subplot(231),imshow(I),title('原图');
    subplot(232),imshow(BW1),title('Sobel算子边缘检测');
    subplot(234),imshow(BW2),title('Roberts算子');
    subplot(233),imshow(BW3),title('Priwitt算子');
    subplot(235),imshow(BW4),title('LOG算子');
    subplot(236),imshow(BW5),title('Canny算子');
    
    %%
    %添加20的标准差gaussian噪音
    I=imread('hei.png');
    f=imnoise(I,'gaussian',0,20);
    I1=rgb2gray(f);
    w=[-1 -1 -1;-1 8 -1;-1 -1 -1];%点检测掩模
    gi=abs(imfilter(double(I1),w));
    T=max(gi(:));
    gi=gi>=T;
    subplot(211);imshow(I1);title('原图像');
    subplot(212);imshow(gi);title('点检测');
    
    
    %%
    %添加20的标准差gaussian噪音
    I=imread('hei.png');
    I=rgb2gray(I);
    f=imnoise(I,'gaussian',0,20);
    w=[2 -1 -1;-1 2 -1;-1 2 -1];
    g=imfilter(double(f),w);
    subplot(2,1,1);imshow(f);title('原图像');
    subplot(2,1,2);imshow(g,[]);title('线检测120°方向');
    
    %%%%Hougn变换
    I=imread('hei.png');
    f=rgb2gray(I);%RGB-->gray
    f=f(round(end/2):end,1:round(end/2));
    BW=edge(f,'canny');%edge:以灰度图像为输入,'canny'为边缘检测算子,
                       %%输出BW为二值图像,边缘处为白(255)其余部分为黑(0)
    subplot(211),imshow(f),title('原始图像');
    [row,col]=size(BW);
    rhomax=round((row*row+col*col)^0.5);
    A=zeros(2*rhomax,180);   %这里,实际上rho的取值范围为[-rhomax,rhomax],
                             %但是为了后面进行数量统计,转变为[1,2rhomax]
    for m=1:row
        for n=1:col
            if BW(m,n)>0 %判断为边缘
                for theta=1:180
                    r=theta/180*pi; %角度转换
                    rho=round(m*cos(r)+n*sin(r));
                    %Hough变换
                    rho=rho+rhomax+1;   %坐标平移
                                        %这里的理解,首先matlab中数组是从1开始计数,所以+1;
                                        %数组坐标不能<0,所以 +rhomax
                    A(rho,theta)=A(rho,theta)+1;   %数量统计
                end
            end
        end
    end
    [rho,theta]=find(A>130);   %超过130个点视为共线,rho列号,theta行号
    nma=length(rho);
    subplot(212),imshow(BW);
    for i=1:nma
        hold on
        m=1:row;
        r=theta(i)/180*pi;
        n=(rho(i)-rhomax-m*cos(r))/(0.0001+sin(r));
        plot(n,m,'w-','LineWidth',6);
    end
    title('hough线检测');
    
    展开全文
  • MATLAB数字图像处理实验二 实验一:给出不同的参数,模拟图像的高斯模糊图并显示; 实验二:给出不同的参数,模拟图像的运动模糊图并显示; 实验三:对2中的图像进行反滤波、维纳滤波并显示滤波后在结果; 实验四:...

    MATLAB数字图像处理实验二

    实验一:给出不同的参数,模拟图像的高斯模糊图并显示;
    实验二:给出不同的参数,模拟图像的运动模糊图并显示;
    实验三:对2中的图像进行反滤波、维纳滤波并显示滤波后在结果;
    实验四:对2中的图像加不同的噪声后进行反滤波、维纳滤波并显示滤波后在结果。

    %%实验一
    I=imread('hei.png');
    subplot(221),imshow(I),title('原图');
    I1=imfilter(I,fspecial('gaussian',[5 5],0.1));
    subplot(222),imshow(I1),title('0.1的gaussian模糊');
    I1=imfilter(I,fspecial('gaussian',[5 5],0.5));
    subplot(223),imshow(I1),title('0.5的gaussian模糊');
    I1=imfilter(I,fspecial('gaussian',[5 5],1.0));
    subplot(224),imshow(I1),title('1.0的gaussian模糊');
    
    
    %%
    %%实验二
    I=imread('hei.png');
    subplot(221),imshow(I),title('原图');
    I=imfilter(I,fspecial('motion',1));
    %%fspecial('motion',len,theta)逆时针方向以theta角度运动了len个像素
    subplot(222),imshow(I),title('0°方向运动1个像素');
    I=imfilter(I,fspecial('motion',3,2));
    subplot(223),imshow(I),title('2°方向运动3个像素');
    I=imfilter(I,fspecial('motion',9,20));
    subplot(224),imshow(I),title('20°方向运动9个像素');
    
    %%
    %%实验三
    I=imread('hei.png');
    I1=imfilter(I,fspecial('gaussian',[5 5],1.0));
    x=rgb2gray(I1); 
    x1=x(:,:,1);
    x1=double(x1);
    [r,r1]=size(x1);
    y1=fftshift(fft2(x1));
    [r,r1]=size(y1);
    subplot(221),imshow(x1,[]),title('原始的图像');
    
    m=1:r; 
    m1=1:r1; 
    [m,m1]=meshgrid(m,m1);%生成网格空间 
    noise=20.*imnoise(zeros(r,r1),'gaussian');%高斯噪声
    subplot(222),imshow(noise,[]),title('参数为0的guassian噪音');
    
    a=double(21/100);%x方向的最大移动量为ra的0.21倍,可调
    b=double(21/100);%y方向的最大移动量为ca的0.21倍,可调
    t=double(88/100);%移动到最大所需的时间默认为0.88
    f=ones(r,r1);
    g=(m-r/2-1).*a+(m1-r1/2-1).*b+eps;
    f=t.*sin(pi.*g).*exp(-j.*pi.*g)./(pi.*g);
    h=f'.*y1;
    tu=ifft2(h);
    tu=abs(tu)+noise;
    y1=h./f';
    subplot(223);
    imshow(abs(ifft2(y1)),[]);
    title('逆滤波');
    h=fftshift(fft2(tu));
    x=fftshift(fft2(noise));
    K=x.*conj(x)./(y1.*conj(y1));%计算K值
    w=(f.*conj(f))'.*h./(f.*(f.*conj(f)+K'))';
    weina=abs(ifft2(w));
    subplot(224);
    imshow(weina,[]);
    title('维纳滤波');
    
    %%
    %%实验四
    clear;
    clc;
    I=imread('hei.png');
    I1=imfilter(I,fspecial('gaussian',[5 5],1.0));
    x=rgb2gray(I1); 
    x1=x(:,:,1);
    x1=double(x1);
    [r,r1]=size(x1);
    y1=fftshift(fft2(x1));
    [r,r1]=size(y1);
    subplot(221),imshow(x1,[]),title('原始的图像');
    m=1:r; 
    m1=1:r1; 
    [m,m1]=meshgrid(m,m1);%生成网格空间 
    noise=20.*imnoise(zeros(r,r1),'gaussian',0,0.006);%高斯噪声
    subplot(222),imshow(noise,[]),title('参数为0.0006的guassian噪音');
    a=double(21/100);%x方向的最大移动量为ra的0.21倍,可调
    b=double(21/100);%y方向的最大移动量为ca的0.21倍,可调
    t=double(88/100);%移动到最大所需的时间默认为0.88
    f=ones(r,r1);
    g=(m-r/2-1).*a+(m1-r1/2-1).*b+eps;
    f=t.*sin(pi.*g).*exp(-j.*pi.*g)./(pi.*g);
    h=f'.*y1;
    tu=ifft2(h);
    tu=abs(tu)+noise;
    y1=h./f';
    subplot(223),imshow(abs(ifft2(y1)),[]);title('逆滤波');
    h=fftshift(fft2(tu));
    x=fftshift(fft2(noise));
    K=x.*conj(x)./(y1.*conj(y1));%计算K值
    w=(f.*conj(f))'.*h./(f.*(f.*conj(f)+K'))';
    weina=abs(ifft2(w));
    subplot(224),imshow(weina,[]),title('维纳滤波');
    
    展开全文
  • MATLAB数字图像处理实验四 实验一:选择一种有损压缩编码算法(K-L变换或DCT变换)对l图像进行压缩编码,计算出压缩率,并显示编码前图像 %% %实验一(计算压缩率,显示编码前图片) %%利用DCT变换进行图像压缩 K=imread...

    MATLAB数字图像处理实验四

    实验一:选择一种有损压缩编码算法(K-L变换或DCT变换)对l图像进行压缩编码,计算出压缩率,并显示编码前图像

    %%
    %实验一(计算压缩率,显示编码前图片)
    %%利用DCT变换进行图像压缩
    K=imread('hei.png'); 
    I1=rgb2gray(K);
    I=im2double(I1);
    T=dctmtx(8);
    B=blkproc(I,[8 8],'P1*x*P2',T,T');
    mask=[1 1 1 1 0 0 0 0;1 1 1 0 0 0 0 0;1 1 0 0 0 0 0 0;1 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0];
    B2=blkproc(B,[8 8],'P1.*x',mask);
    I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
    subplot(211),imshow(K),title('原图');
    subplot(212),imshow(I2),title('DCT变换');
    [m n]=size(B2);
    J=[m n];
    for i=1:m
        value=B2(i,1);
        num=1;
        for j=2:n
            if B2(i,j)==value
                num=num+1;
            else
                J=[J num value];
                num=1;
                value=B2(i,j);
            end
        end
        J=[J num value ];
    end
    disp('原图像大小')
    whos('B2');
    disp('压缩图像大小:')
    whos('J');
    disp('图像的压缩比:')
    %disp(m*n/length(J))%解压缩
    u1=m*n;
    u2=length(J);
    c=vpa((u2/u1)*100,4);
    disp([char(c),'%'])
    t1=J(1);
    t2=J(2);
    K(1:t1,1:t2)=0;
    i1=1;
    j1=1;
    for i=3:2:length(J)
        c1=J(i);
        c2=J(i+1);
        for j=1:c1
            K(i1,j1)=c2;
            j1=j1+1;
            if j1>t2
                i1=i1+1;
                j1=1;
            end
        end
    end
    
    
    展开全文
  • (三)matlab数字图像处理实验-图像灰度变换处理

    万次阅读 多人点赞 2018-01-06 18:47:37
    前两节都是熟悉一下怎么在matlab底下对图片做一些操作...matlab数字图像处理实验 我们还是先写一个guide,然后打开文件的代码: 打开文件摁纽的代码: % --- Executes on button press in 打开位图. funct
  • 数字图像处理实验报告 实验一 图像的增强 一.实验目的 1.熟悉图像在MATLAB下的读写输出 2.熟悉直方图 3.熟悉图像的线性指数等 4.熟悉图像的算术运算和几何变换 二.实验仪器 计算机MATLAB软件 三.实验原理 图像增强是...
  • matlab数字图像处理实验 1、什么是平滑处理?  首先明白几个名词:  (1)噪声:图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。 1.高斯噪声:高斯噪声是指它的概率密度函数服从高斯分布(即正态...
  • MATLAB数字图像处理实验代码+结果
  • matlab数字图像处理实验指导书及源代码,超棒的学习资料!!!
  • matlab数字图像处理实验 上一节已经简单介绍guide的使用,我们直接用,创建了这么一个界面: 1、打开图片代码: % --- Executes on button press in openFile. function openFile_Callback(hObject, ...
  • matlab数字图像处理实验指导.pdf *****************************************************************************
  • 数字图像处理实验课程,主要使用MATLAB实现对图像的简单处理
  • MatLab 数字图像处理实验 图像复原

    热门讨论 2021-04-30 11:05:21
    实验(1)使用给定的图像cameraman做实验,添加高斯噪声,所使用的均值滤波器包括算术均值滤波器、几何均值滤波器和逆谐波滤波器,参考教材110页至112页的算法原理和程序例6.2 close all clear all I = imread('D:/...
  • %图像的红色分量 g=rgb1(:,:,2);%图像的绿色分量 b=rgb1(:,:,3);%图像的蓝色分量 r1=r(130:195,86:170);%在红分量中选择一块矩形区域,由输入可知size(r)=(195 ,218),改变选择的行列可以改变标准偏差的标准值 r1_u=...
  • 实验(1)以chair.jpg图像为例,分别采用sobel、prewitt、roberts和log对该图像及其加上噪声后的图像进行边缘检测。 close all clear all I=imread('D:/chair.jpg'); I_noise=imnoise(I,'gaussian',0.06); bw1=edge...
  • 实验内容 (1)对曝光不足的图像采用灰度线性变换对图像每一个像素灰度做线性拉伸。 close all clear all I = im2double(imread('D:\figure51.jpg')); a = 1.2; b = -150; I2 = a.*I+b/255; figure; subplot(1,2,1);...
  • matlab数字图像处理实验 (1)打开 为了好看点,我们用matlab的guide做程序界面,打开guide很简单,只要在命令窗口输入guide就可以。 打开后会变成这个: 界面使用非常简单,都是拖拽格式,想要...
  • 在Windows操作系统下的MATLAB2019b应用程序中编写程序,待程序调试完成后,通过选取两组图像分别进行傅里叶变换处理获取其相应的幅度谱和相位谱,并交换两幅图像的幅度谱和相位谱重构图像仿真实验来验证图像信号的...
  • 一、实验要求 1、直方图(读入你自己的图片并显示...用大小为3X3,5X5,7X7的统计滤波(取第8顺位)对其进行去噪处理,并将它们绘制在同一幅figure中进行比较; 4、对你的图像进行傅里叶变换并直接显示; 二、实验代...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 865
精华内容 346
关键字:

matlab数字图像处理实验

matlab 订阅