
MATLAB--数字图像处理
文章平均质量分 74
MATLAB数学图像处理学习笔记
海轰Pro
微信小程序:「海轰Pro」
微信公众号:「海轰Pro」
知乎:「海轰Pro」
微博:「海轰Pro」
展开
-
数字图像处理实验合集(含代码、报告)
数字图像处理(MATLAB)实验一一、实验名称图像的采样与量化二、实验目的 1.熟悉MATLAB软件的使用。2.掌握采样与量化的原理及数学运算。3.于MATLAB环境下编程实现对图片的不同程度的采样与量化。三、实验内容1.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的采样。2.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的量化。实验二一、实验名称...原创 2020-02-17 13:13:09 · 10542 阅读 · 1 评论 -
MATLAB--数字图像处理 图像的灰度变换与直方图修正
一、实验名称图像的灰度变换与直方图修正二、实验目的1.熟悉MATLAB软件的使用。2.掌握灰度变换、直方图修正的原理及数学运算。3.于MATLAB环境下编程实现对图片的灰度变换和直方图修正。三、实验内容1.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的灰度变换。2.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的直方图修正。四、实验仪器与设备Win10...原创 2019-12-11 21:19:49 · 12452 阅读 · 0 评论 -
MATLAB--数字图像处理 图像的采样与量化
实验题目 1.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的采样。 2.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的量化。实验原理1.采样 我们获取到的图像一般为模拟图像,要让计算机进行处理需将其数字化,采样的作用就是将模...原创 2019-12-11 21:12:08 · 7845 阅读 · 0 评论 -
MATLAB--人脸识别
效果图需要源码 (付费的哦o( ̄︶ ̄)o)请联系海轰原创 2019-11-12 17:12:19 · 1798 阅读 · 8 评论 -
MATLAB--数字图像处理 车牌识别之矫正车牌+分割字符
源代码 Image = imread ('car4.jpg') ;Image = imresize (Image, [300 450]) ; %调整图像的大小为300*450gray = 2*Image (:, :, 3) - Image (:, :, 1) - Image (:, :, 2) ;figure,imshow(gray),title('保留蓝色色域')l = grayt...转载 2019-11-06 23:58:35 · 9934 阅读 · 6 评论 -
MATLAB--数字图像处理 HOG+SVM识别手写数字
源代码syntheticDir = fullfile(toolboxdir('vision'), 'visiondata','digits','synthetic');handwrittenDir = fullfile(toolboxdir('vision'), 'visiondata','digits','handwritten');% |imageDatastore| recurs...原创 2019-11-06 23:55:23 · 2359 阅读 · 0 评论 -
MATLAB--数字图像处理 计算图像链码及其相似多边形
题目计算以上边界的阶数为20的形状数及其相应的近似多边形代码t=im2bw(imread('homework1.png'));%过滤边缘白点 这里仅针对这幅图像t(:,1)=0;t(140:145,:)=0;imshow(t),title('原图');[m,n]=size(t);%行扫描 找出图像白色区域最左边的端点for i=1:mx=0;y=141;tem=t(...原创 2019-11-01 20:34:22 · 8666 阅读 · 8 评论 -
MATLAB--数字图像处理 Hough变换
前言代码 I = imread('k3.png'); I=rgb2gray(I);figure; subplot(131), imshow(I); % Rotate the imagerotI = I; % Create a binary imageBW = edge(rotI, 'canny'); subplot(133), imshow(BW); % Creat...原创 2019-10-31 13:23:36 · 5314 阅读 · 0 评论 -
MATLAB--数字图像处理 Otsu算法(双阈值)
Otsu算法(双阈值)该算法就是利用otsu算法计算出两个阈值公式g=w0*(u0-u)^2+w1*(u1-u) ^2+ w2*(u2-u) ^2g最大值时,就可以选出两个阈值代码求两个阈值function [t1,t2]=DoubleOtsuThresh(img)%% Otsu 双阈值求解% 输入 图像img,输出 最优阈值t1和t2(归一化,范围在[0,1])%...转载 2019-10-27 16:58:18 · 11440 阅读 · 9 评论 -
MATLAB--数字图像处理 Otsu算法(MATLAB原理验证)
概念OTSU算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法。(大津算法)Otsu原理对于图像 t (x,y),前景(即目标)和背景的分割阈值记作 T,属于前景的像素点数占整幅图像的比例记为 ω0,平均灰度为 μ0;背景像素点数占整幅图像的比例为 ω1,平均灰度为 μ1;整幅图像的平均灰度记为μ,类间方差记为g。假设图像大小为M×N,图像中像素的灰度值小于阈值 T ...原创 2019-10-20 16:39:47 · 9066 阅读 · 4 评论 -
MATLAB--数字图像处理 cumsum()
概念cumsum,通常用于计算一个数组各行的累加值。用法B = cumsum(A,dim)B = cumsum(A)调用格式及说明格式一B = cumsum(A)返回数组不同维数的累加和如果A是一个向量, cumsum(A) 返回一个向量,该向量中第m行的元素是A中第1行到第m行的所有元素累加和(原向量A是m行一列,返回结果也是m行一列)如果A是一个矩阵, cumsum(...原创 2019-10-19 19:56:24 · 3557 阅读 · 0 评论 -
MATLAB--数字图像处理 特征点匹配
混乱场景目标图像检测(特征点匹配)代码(从大佬那copy的)boxImage = imread('car2_1.png');sceneImage = imread('car2.jpg'); boxImage = rgb2gray(boxImage);sceneImage =rgb2gray(sceneImage);%% Step 2: 提取SURF特征点boxPoints = de...转载 2019-10-18 16:59:15 · 11572 阅读 · 5 评论 -
MATLAB--数字图像处理 击中击不中变换
击中击不中变换原理击中击不中变换(HMT)需要两个结构元素B1和B2,合成一个结构元素对B=(B1,B2)一个用于探测图像内部,作为击中部分;另一个用于探测图像外部,作为击不中部分。显然,B1和B2是不应该相连接的,即B1∩B2=Φ。击中击不中变换的数学表达式为:g(x, y)=hitmiss[f(x, y), B]=erode[f(x, y), B1]AND erode[fc(x, y)...原创 2019-10-18 15:51:03 · 5268 阅读 · 0 评论 -
MATLAB--数字图像处理 车牌识别之简易识别程序
车牌识别之简易识别程序代码 I=imread('car2.jpg');figure(1),imshow(I);title('原图')I1=rgb2gray(I);%功能是将真彩色图像转换为灰度图像,即灰度化处理figure(2),subplot(1,2,1),imshow(I1);title('灰度图');figure(2),subplot(1,2,2),imhist(I1);titl...转载 2019-10-17 16:28:35 · 8328 阅读 · 5 评论 -
MATLAB--数字图像处理 车牌识别之分离字符
车牌识别之分离字符前言在进行车牌识别时(传统方法),首先是截去车牌区域,分离每个字符串,再利用模式匹配进行匹配字符,得到结果。分离字符思路这里利用的是车牌的蓝色特性,在图片中,只有车牌这里蓝色色域最多(作为入门算法,排除蓝色车系),所以利用RGB三通道进行处理,得到只有蓝色色域的图像,然后再二值化,利用闭运算把车牌合成一块白色区域,背景全部处理掉(以黑色显示),然后获得白色区域的位置坐标,...转载 2019-10-15 16:54:17 · 4949 阅读 · 3 评论 -
MATLAB--数字图像处理 小波变换实现图像压缩
小波变换实现图像压缩代码X=imread('a5.jpg');X=rgb2gray(X);subplot(221); imshow(X);title('原始图像');%对图像用小波进行层小波分解[c,s]=wavedec2(X,2,'haar');%提取小波分解结构中的一层的低频系数和高频系数cal=appcoef2(c,s,'haar',1);ch1=detcoef2('h'...转载 2019-10-13 21:00:10 · 5829 阅读 · 3 评论 -
MATLAB--数字图像处理 傅里叶变换实现图像压缩
傅里叶变换实现图像压缩题目首先将图像分割为8x8的子图像,对每个子图像进行FFT.对每个子图像中的64个系数,排序后,舍去小的变换系数,只保留靠前的16个系数,实现4: I的图像压缩。代码t=imread('a6.jpg');t=rgb2gray(t);%灰度化[k,p]=size(t);t=double(t)/255;%归一化 便于计算%显示原图imshow(t),title...原创 2019-10-13 15:47:58 · 6407 阅读 · 0 评论 -
MATLAB--数字图像处理 sort()函数
sort()用处对一维或二维矩阵进行排序用法sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行升序排序(列优先)。sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一列排序(即将第一维行数打乱重排);当dim=2时,对矩阵的每一行排序(即将第二维列数打乱重排)。sort(A,...原创 2019-10-13 14:39:53 · 4236 阅读 · 0 评论 -
MATLAB--数字图像处理 im2col()
im2col()矩阵卷积卷积就是卷积核跟图像矩阵的运算。卷积核是一个小窗口,记录的是权重。卷积核在输入图像上按步长滑动,每次操作卷积核对应区域的输入图像,将卷积核中的权值和对应的输入图像的值相乘再相加,赋给卷积核中心所对应的输出特征图的一个值,如下图所示(这里卷积核要旋转180 °):如果还不懂的话,可以类比均值滤波,用一个矩阵算子对于图像上一块图像,对于像素点相乘,再相加,这就是卷积。(...原创 2019-10-13 14:09:35 · 2166 阅读 · 0 评论 -
MATLAB--数字图像处理 简单人脸识别
简单人脸识别思路找到图像中连通域面积最大的那块连通域。i=imread('face.jpg');I=rgb2gray(i); BW=im2bw(I); %利用阈值值变换法将灰度图像转换成二进制图像figure(1);imshow(BW);%最小化背景[n1 n2]=size(BW);r=floor(n1/10); %分成10块 行...转载 2019-10-12 20:15:44 · 9970 阅读 · 2 评论 -
MATLAB--数字图像处理 bwlabel()函数
bwlabel()用处一般用在图像区域的分割,比如人脸区域与其他肤色区域分割开用法L = bwlabel(BW,n)返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2…num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。8连通:是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角...原创 2019-10-12 14:47:41 · 5235 阅读 · 0 评论 -
MATLAB--数字图像处理 PSNR
PSNR概念psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。PSNR的单位为dB。值越大,代表失真越少。用处用来评定图片的图像质量PSNR值高于40dB:说明图像质量极好(即非常接近原始图像),30—40dB:通常表示图像质量是好的(即失真可以察觉但可以...原创 2019-10-11 20:56:56 · 12826 阅读 · 3 评论 -
MATLAB--数字图像处理 fspecial()与imfilter()的使用
fspecial()与imfilter()的使用函数说明fspecial():h = fspecial(type)h = fspecial(type,para)根据函数原型对fspecial函数作个说明,fspecial是用来生成滤波器(也叫算子)的函数,使用type参数来指定滤波器的种类,使用para来对具体的滤波器种类添加额外的参数信息。h就是生成的滤波器。imfilter():...原创 2019-09-22 19:39:15 · 6948 阅读 · 0 评论 -
MATLAB--数字图像处理 图像直方图规定化
直方图规定化原理:所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。说的通俗一点就是,原图像的灰度是从0~255的,其分布是随机的,在一些情况下,我们可能需要一些特定的灰度值,比如我们只需要灰度值为0 3 40 240 255 这些值,除此之外的灰度值我们不需要,那么从原图像到我们需要的图像就可以理解成图像的规定化。具体事例:左图是原图像的灰度直方图,右图是我...原创 2019-09-07 00:59:41 · 12173 阅读 · 3 评论 -
MATLAB--运用傅里叶变换对信号进行简单的滤波
运用傅里叶变换对信号进行简单的滤波原理将信号进行傅里叶变换可以信号中有哪些频率成分,将需要滤除的频率成分的幅值置零,然后进行傅里叶逆变换就可以达到滤波的目的。注意点运行FFT进行变换时需要考虑奈奎斯特之后的振幅和相位,进行傅里叶逆变换的时候是取N个点进行变换,而不是取一半。下面以一个实例进行说明信号:x=0.5sin(2pi3t)+cos(2pi10*t),滤除8Hz-12Hz的信号。...转载 2019-10-10 19:07:01 · 18822 阅读 · 10 评论 -
MATLAB--从正弦波转换为方波(验证傅里叶级数)
从正弦波转换为方波(傅里叶验证)此示例说明方波的傅里叶级数展开式是如何由奇次谐波的和构成的。1.首先以 0.1 为步长,生成一个从 0 到 10 的时间向量,并求出所有点的正弦。绘制基频图t = 0:.1:10;y = sin(t);plot(t,y);2.接下来,向基频添加第三个谐波,并绘制谐波图y = sin(t) + sin(3*t)/3;plot(t,y);3.接...转载 2019-10-10 17:15:30 · 10075 阅读 · 0 评论 -
MATLAB-- mean()的使用
randn()的使用说明:M = mean(A) 返回 A 沿大小不等于 1 的第一个数组维度的元素的均值。如果 A 是向量,则 mean(A) 返回元素均值。如果 A 为矩阵,那么 mean(A) 返回包含每列均值的行向量。如果 A 是多维数组,则 mean(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度会变为 1,而所有其他维度的大小保持不变。M = m...原创 2019-09-11 20:54:18 · 13000 阅读 · 0 评论 -
MATLAB--数字图像处理 图像的收缩
图像的收缩定义:图像的收缩通俗一点就是我们常说的放大、缩写,在数字图像处理中,就是指像素的增加与减少。比如22的图像,有4个像素,放大两倍,那么就有44=16个像素。那么怎么对图像进行收缩呢?这里拿放大举例:放大二倍的图像就是图片的width、height都扩大为原来的两倍,也就是像素总数为原来的四倍。那么怎么在保证图片内容不变的情况下增加像素呢?这个也简单,举个例子,比如一个红色的圆原来...原创 2019-09-08 15:05:28 · 3805 阅读 · 1 评论 -
MATLAB--数字图像处理 图像旋转
图像旋转图像的旋转其实矩阵的旋转,而整个矩阵的旋转,则可以看出单个坐标的旋转。也就是说,只有我们知道了单个坐标旋转后的坐标,那么就很好得出旋转之后的图像了。这里我们假定旋转后的图像大小不变哈。对于看旋转原理,这里可以去看一位大佬写的文章,写的很好,慢慢按着他的方法,就会懂旋转的原理,这里我就不多说了。(写的真的很好!)文章链接自己写的代码:function [newimage]=rotat...原创 2019-09-08 11:08:27 · 11388 阅读 · 0 评论 -
MATLAB--数字图像处理 图像平移
图像平移对于图像的平移,MATLAB中是可以利用膨胀函数平移图像。代码:I = imread('a1.jpg');se = translate(strel(1), [50 140]);%将一个平面结构化元素分别向下和向右移动30个位置J = imdilate(I,se);%利用膨胀函数平移图像subplot(121);imshow(I), title('原图')subplot(122...原创 2019-09-07 17:05:40 · 33870 阅读 · 6 评论 -
MATLAB--四种取整函数
四种取整函数MATLAB中对取整,给出了四种不同取整方法的函数,分别是:fixfloorceilround1、fix()向靠近0的方向取整比如:fix(2.2)=2fix(2.9)=2fix(-1.2)=-1fix(-2.7)=-22、floor()朝负无穷方向取整,就是平时所说的不超过x的最大整数比如:floor(2.2)=2floor(2.9)=2fl...原创 2019-09-07 15:18:55 · 19861 阅读 · 0 评论 -
MATLAB-数字图像处理 量化
量化量化:计算机软件得到了一个样本点(图片)的数据,然后它要用多少个二进制位去表示它(重现图片)。如下图根据上图,可以知道图像有一个灰度的概念1bit 只有 2 个灰度级,0 和 12bit 有 4 个灰度级,0, 1, 2, 38bit 有 256 个灰度级,0 到 255那么怎么使用MATLAB来进行量化呢?这里我们可以直接利用histeq()函数进行。上代码: t=imre...原创 2019-09-04 00:20:37 · 8183 阅读 · 0 评论 -
MATLAB--数字图像处理 图像直方图均衡化
图像直方图均衡化首先,我们要理解什么是图像直方图均衡化:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布,具体见下图(说的简单点,就是把原来的图像的灰度分配均匀,使得0-255都有一定的取值,这样对比度相对...原创 2019-09-03 15:43:01 · 29220 阅读 · 4 评论 -
MATLAB-数字图像处理 图像直方图归一化
图像直方图归一化图像直方图概念:图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征。图像灰度直方图:一副数字图像有[0~255]灰度级,直方图定义如下:其中,是第k个灰度级(如:255),是该灰...原创 2019-09-02 21:16:05 · 11471 阅读 · 0 评论 -
MATLAB--数字图像处理 入门--分别提取图像三通道(RGB)灰度图
入门–分别提取图像三通道(RGB)灰度图原图输入下面代码后:t=imread('t1.jpg')imshow(t)得到的图像和原图一样但,执行下面代码后:t=imread('t1.jpg')t1=t(1:8:end,1:8:end)imshow(t1)出现了三张图片,但是感觉应该只有一张啊。这是因为图像的存储是一个三维矩阵,包含RGB三种要素的信息,也就是我们所说的三...原创 2019-09-02 19:46:07 · 26370 阅读 · 13 评论 -
MATLAB--std()的使用
std()的使用y=std(x) 算出x的标准偏差。 x可以是vector或者一个matrix矩阵。若x是vector,则y是算x的标准偏差。若x是matrix,则y是个vector,存放的是算每一列/行的标准偏差。 std (x, flag,dim)fla表示标注公差时是要除以n还是n-1flag0…是除以n-1flag1…是除以ndim表示维数dim1…是按照列分dim2…...原创 2019-09-11 21:03:20 · 6435 阅读 · 0 评论 -
MATLAB--求一个矩阵中所有元素的平均值
求一个矩阵中所有元素的平均值 在学均值滤波的时候,需要用到求一个矩阵所有元素的平均值,学习C++的我居然写了个循环,先算总值,再除以个数.(现在想想当时自己好笨!) 先上代码吧(用MATLAB中的一些函数可以减少很多工作量)a=[1,2,3;4,5,6;7,8,9];d=mean(a(:))结果:d = 5解释:a(:)的...原创 2019-09-14 16:11:50 · 24558 阅读 · 0 评论 -
MATLAB--数字图像处理 添加周期噪声
添加周期噪声概念代码t=imread('a1.jpg');[m,n]=size(t);t_1=t;for i=1:mfor j=1:nt_1(i,j)=t(i,j)+40*sin(40*i)+40*sin(40*j);endendimshow(t),title('原图');figure,imshow(t_1),title('加入周期噪声后');结果...原创 2019-10-10 16:11:41 · 9385 阅读 · 0 评论 -
MATLAB--数字图像处理 绘画出图像灰度值的三维图像
绘画出图像灰度值的三维图像方法一: i=imread('a1.jpg');if(size(i,3)>1)i=rgb2gray(i);endi=double(i);mesh(i);figure,mesh(flipdim(i,1)),title('水平镜像翻转后 这样更加符合MATLAB对于图像处理的坐标')效果图水平镜像翻转后 更加符合MATLAB对于图像处理是...原创 2019-10-02 13:12:56 · 11147 阅读 · 5 评论 -
MATLAB--数字图像处理 傅里叶变换
https://www.cnblogs.com/h2zZhou/p/8405717.html原创 2019-10-02 12:02:42 · 2365 阅读 · 0 评论