数字图像处理
本科生的数字图像处理课程练习
-似曾相识燕归来
软件工程专业,终身学习型~
展开
-
matlab 图像处理入门
图像读取:A=imread(FILENAME,FMT) 图像保存:imwrite(A,FILENAME,FMT) 图像显示:imshow(A,[low high]) 将图像转换为黑白图像或灰度图像>> colorPhoto=imread('zhenxiang.jpg');>> imshow(colorPhoto);%使用im2bw>> grayPhoto = im2bw(colorPhoto)原创 2016-11-21 22:29:36 · 517 阅读 · 0 评论 -
matlab 去除高斯噪声
1.读入一幅图像,利用’imnoise’函数,添加高斯噪声;>> clear all;>> sample = imread('sample.jpg');>> gaussianSample=imnoise(sample,'gaussian');>>imshow(gaussianSample);2.通过100次相加求平均的方法去除噪声。>> sumSample = zeros(500,500);原创 2016-11-21 22:48:09 · 35269 阅读 · 4 评论 -
matlab 图像形态学处理与图像分割
1. 对图像进行去噪、直方图均衡等图像增强处理去噪>> finger_noise=imread('finger_noise.jpg');>> gray_finger_noise=rgb2gray(finger_noise);%均值滤波>> gray_finger_avg3=filter2(fspecial('average',3),gray_finger_noise)/255; %模板尺寸原创 2016-12-01 17:07:30 · 15997 阅读 · 1 评论 -
matlab 实现数字图像的傅立叶变换及滤波锐化
1. 启动MATLAB程序,读入一幅图像;对图像做FFT。使用’subplot’命令,同时显示原始图像其频谱图; IenaImg=imread('lena.jpg'); %读入原图像文件fftI=fft2(double(IenaImg)); %二维离散傅立叶变换sfftI=fftshift(fftI); %直流分量移到频谱中心RR=real(sfftI); %取原创 2016-11-21 23:03:54 · 9636 阅读 · 0 评论 -
matlab 彩色图像处理
读入一幅彩色图像,进行如下图像处理:(1) 在RGB彩色空间中对图像进行模糊和锐化处理rgb= imread('flower.jpg');figure; imshow(rgb); title('原图'); %平滑滤波 r=rgb(:,:,1); g=rgb(:,:,2); b=rgb(:,:,3); m=fspecial('average',[8,8]); r_filtered原创 2016-11-21 23:24:14 · 11024 阅读 · 2 评论 -
matlab 图像的几何变换
1 启动MATLAB程序,读入图像并对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作%%%%%%平移 >> flowerImg=imread('flower.jpg');>> se=translate(strel(1),[100 100]);>> img2=imdilate(flowerImg,se);>> subplot(1,2,1);>> imshow(flowerI原创 2016-11-21 23:09:57 · 5032 阅读 · 0 评论 -
matlab 图像的平滑和锐化
1.读入一幅图像,分别采用均值和高斯滤波器对图像进行平滑处理>> clear all;>> sample = imread('sample.jpg');>> mean3Sample = filter2(fspecial('average',3),sample)/255;>> mean5Sample = filter2(fspecial('average',5),sample)/255;>>原创 2016-11-21 22:54:39 · 40828 阅读 · 3 评论 -
matlab 图像直方图均衡化
读入一幅图像,计算并绘制图像的直方图>> sample = imread('sample.jpg');>> imshow(sample);>> [M,N]=size(sample);>> [counts,x]=imhist(sample,32);>> counts=counts/M/N;>> stem(x,counts); 读入一幅低对比度图像,对图像进行直方图均衡化处理>> hi原创 2016-11-21 22:36:10 · 13730 阅读 · 1 评论 -
matlab GUI编程入门
这里我们来实现一个加法器,功能比较简单,主要用于了解matlab中的代码是如何与控件进行交互。2.绘制界面在命令行窗口中输入:>> guide 直接“确定”即可。 将需要的控件从左边托至中间的编辑窗口,如下图。 将按钮的“Tag”修改为“compute_pushbutton”。 3.实现控件回调函数在“计算”按钮上,右键–》查看回调–》CallBack原创 2016-12-02 19:25:55 · 53707 阅读 · 18 评论 -
matlab 控件之间通过GUI Data传递数据
本文主要演示编辑框与滑动条之间传递数据。当用户拖动滑动条时,在编辑框中同步更新数据;当在编辑框中输入数据时,如果数据合法,滑动条跳至相应的位置。2.用户界面 界面上只有一个编辑框和一个滑动条。3.回调函数在滑动条的回调函数function slider1_Callback(hObject, eventdata, handles)下加入以下内容:set(handl原创 2016-12-02 20:19:02 · 2783 阅读 · 0 评论 -
2018-07-10-MATLAB使用legend显示图例时出错
Matlab使用legend显示图例时出错1. 问题下面我们给出一个很简单的示例来说明这个问题。x = (1:20);y1 = x;y2 = 2*x;y3 = 3*x;plot(x, y1,x ,y2, x, y3);legend('x', '2*x', '3*x');在上面的代码中,我们绘制了三条直线,并显示三个图例,分别为(x,2*x,3*x),执行结果如下...原创 2018-07-10 22:02:38 · 20414 阅读 · 1 评论 -
matlab 子函数
函数M文件可以包含不止一个函数,文件中的第一个函数为基本函数,这个函数能通过函数的文件名调用。在这个文件中的其它函数就是子函数。这些子函数只对该文件下的函数可见。function [avg,med] = newstats(u) % 主函数% NEWSTATS Find mean and median with internal functions.n = leng原创 2016-12-01 21:43:49 · 1510 阅读 · 0 评论 -
matlab 中的关键词
转载请注明来自:黄朝辉的博客>> iskeywordans = 'break' 'case' 'catch' 'classdef' 'continue' 'else' 'elseif' 'end' 'for' 'function' 'global' 'if' 'otherwise' 'pa原创 2016-12-01 21:31:51 · 5248 阅读 · 0 评论 -
matlab 函数句柄(function handle)
前言函数句柄是一种MATLAB的数据类型,它包含引用函数的信息。使用函数句柄的好处传递函数访问信息给其它的函数允许对子函数和私有函数更广的访问减少需要定义的函数的数量改善重复操作的性能原创 2016-12-02 15:57:38 · 10702 阅读 · 1 评论 -
matlab str2double与str2num
str2double可以处理的代表数字的种类比str2num多, 例如:str2double能处理1,000,但是str2num不能。str2num 使用EVAL来执行一个字符串,str2double 不会。>> str2num('sqrt(pi)')ans = 1.77245385090552一般情况下最好使用 str2double。原创 2017-01-27 11:48:28 · 12696 阅读 · 0 评论 -
matlab 编程入门(M文件函数)
matlab编和入门前言MATLAB是一个包括数据结构、函数、控制流、输入输出和面向对象特性的高级语言。快速入门下面是一个快速入门的例子。>> a = 12;>> b = 20;>> c = a + b;>> cc = 32>> 对,就是这么简单,这是直接在命令行窗口中进行编程。 下面我们通过建立一个M-File来实现它。 选择新建 脚本 输入以下内容function c = ad原创 2016-12-01 21:19:23 · 6980 阅读 · 1 评论 -
matlab 一条语句跨越多行
使用... 示例:s = 1 - 1/2 + 1/3 - 1/4 + 1/5 ... - 1/6 + 1/7 - 1/8 + 1/9;原创 2017-01-27 11:50:33 · 7682 阅读 · 0 评论