MATLAB 您所在的位置:网站首页 matlab求laplace变换 MATLAB

MATLAB

2023-06-20 21:50| 来源: 网络整理| 查看: 265

目录1. 锐化2. 梯度运算3. 边缘检测的分类4. Roberts算子5. sobel算子6. Prewitt算子7. 拉普拉斯算子8. matlab代码实现1. 锐化

1.锐化(Sharpening) :图像在传输或变换过程中(如未聚焦好)、受到各种干扰而退化,典型的是图像模糊,而图像的判读和识别中,常需突出目标的轮廓或边缘信息。2.边缘锐化:主要增强图像的轮廓边缘、细节( 灰度跳变部分),以突出图像中景物的边缘或纹理,形成完整的物体边界,使边缘和轮廓模糊的图像清晰,又叫空域高通滤波(俗称为勾边处理)。 从数学角度看,图像模糊相当于图像被平均或者积分,为实现图像的锐化,我们需要运用它的反运算“微分”——加强高频分量,实现轮廓清晰。

2. 梯度运算

设图像MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘算子为定义在点MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_02的梯度矢量为MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_03MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_matlab_04 性质:

梯度的方向是在MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_05的最大变化率方向梯度的幅度用MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_06表示:

MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_07 对于数字图像来说,梯度的求解从求偏导变成了相减MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_08 简化为MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_09

3. 边缘检测的分类

(1)一阶导数的边缘算子 通过模板作为核与图像的每个像素点做卷积和运算,然后选取合适的阈值来提取图像的边缘。常见的有Roberts算子、Sobel算子和Prewitt算子。 (2)二阶导数的边缘算子 依据于二阶导数过零点,常见的有Laplacian 算子,此类算子对噪声敏感。 (3)其他边缘算子 前面两类均是通过微分算子来检测图像边缘,还有一种就是Canny算子,其是在满足一定约束条件下推导出来的边缘检测最优化算子。

4. Roberts算子

对于第二节所讲的数字梯度运算,我们将其公式改变为MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_matlab_10

这种交叉梯度我们称之为Roberts梯度。

MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_11

5. sobel算子

基本思想:以待增强图像的任意象素MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_matlab_12为中心,截取一个MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_13的象素窗口,先分别计算窗口中心象素在MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_14MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘算子_15方向的梯度:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_16 增强后的MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_matlab_12的灰度: MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_18可以简化为:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_19 优点:

由于引入了加权平均,所以对图像中的随机噪声具有一定的平滑作用。由于采用间隔两行或两列的差分,边缘两侧的象素得到增强,锐化图像的边缘显得粗而亮。

MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_20可用卷积模板来实现 可用卷积模板来实现:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_21可见:其重点放在接近于模板中心的象素点

6. Prewitt算子

基本思想:与Sobel算子相同,方程的形式相同,但其中系数不同:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_22可见:与Sobel算子不同 ,其重点没有放在接近于模板中心的象素点。

7. 拉普拉斯算子

基本思想:拉普拉斯(Laplacian) 算子是 n 维欧几里德空间中的一个二阶微分算子。MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_计算机视觉_23

对于数字图像MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_05 ,其一阶导数为:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_25MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_05 ,其二阶导数为:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_python_27拉普拉斯算子为:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_28

其中,Laplacian算子四邻域模板如下所示:MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘算子_29 Laplacian算子八邻域模板如下所示MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_matlab_30 可见:

当邻域内像素灰度相同时,模板的卷积运算结果为0;当中心像素灰度高于邻域内其他像素的平均灰度时,模板的卷积运算结果为正数;当中心像素的灰度低于邻域内其他像素的平均灰度时,模板的卷积为负数。对卷积运算的结果用适当的衰弱因子处理并加在原中心像素上,就可以实现图像的锐化处理。8. matlab代码实现clc;clear all; img = imread('C:\Users\lihuanyu\Desktop\opencv\image\lena256.bmp'); figure; imshow(img),title("原图像"); [ROW,COL] = size(img); img = double(img); new_img = zeros(ROW,COL); %新建画布 %定义robert算子 roberts_x = [1,0;0,-1]; roberts_y = [0,-1;1,0]; for i = 1:ROW - 1 for j = 1:COL - 1 funBox = img(i:i+1,j:j+1); G_x = roberts_x .* funBox; G_x = abs(sum(G_x(:))); G_y = roberts_y .* funBox; G_y = abs(sum(G_y(:))); roberts_xy = G_x * 0.5 + G_y * 0.5; new_img(i,j) = roberts_xy; end end figure(2); imshow(new_img/255),title("robert算子的图像"); % 定义laplace算子 laplace = [0,1,0;1,-4,1;0,1,0]; for i = 1:ROW - 2 for j = 1:COL - 2 funBox = img(i:i+2,j:j+2); G = laplace .* funBox; G = abs(sum(G(:))); new_img(i+1,j+1) = G; end end figure(3) imshow(new_img/255),title("laplace算子的图像"); %定义sobel算子 sobel_x = [-1,0,1;-2,0,2;-1,0,1]; sobel_y = [-1,-2,-1;0,0,0;1,2,1]; for i = 1:ROW - 2 for j = 1:COL - 2 funBox = img(i:i+2,j:j+2); G_x = sobel_x .* funBox; G_x = abs(sum(G_x(:))); G_y = sobel_y .* funBox; G_y = abs(sum(G_y(:))); sobelxy = G_x * 0.5 + G_y * 0.5; new_img(i+1,j+1) = sobelxy; end end figure(4); imshow(new_img/255),title("sobel的图像"); %定义Prewitt算子 sobel_x = [-1,0,1;-1,0,1;-1,0,1]; sobel_y = [-1,-1,-1;0,0,0;1,1,1]; for i = 1:ROW - 2 for j = 1:COL - 2 funBox = img(i:i+2,j:j+2); G_x = sobel_x .* funBox; G_x = abs(sum(G_x(:))); G_y = sobel_y .* funBox; G_y = abs(sum(G_y(:))); sobelxy = G_x * 0.5 + G_y * 0.5; new_img(i+1,j+1) = sobelxy; end end figure(5); imshow(new_img/255),title("Prewitt的图像");

原图:

MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_31

结果:

MATLAB-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化_边缘检测_32



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有