利用Matlab进行图像分割和边缘检测

这篇具有很好参考价值的文章主要介绍了利用Matlab进行图像分割和边缘检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章包含以下内容:        

1、灰度阀值分割

(1)单阈值分割图像

先将一幅彩色图像转换为灰度图像,显示其直方图,参考直方图中灰度的分布,尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。给图像加上零均值的高斯噪声重复上述过程,注意阈值的选择。

(2)多阈值分割图像

自选图像,对图进行多阈值分割,注意阈值的选择。

2.边缘检测

(1)使用Roberts 算子的图像分割实验,调入并显示一幅图像*.gif或*.tif;

使用Roberts 算子对图像进行边缘检测处理;Roberts 算子为一对模板,相应的矩阵为:

rh = [0 1;-1 0]; rv = [1 0;0 -1]; 

这里的rh 为水平Roberts 算子,rv为垂直Roberts 算子。可以显示处理后

的水平边界和垂直边界检测结果;

用“欧几里德距离”方式计算梯度的模,显示检测结果;对于检测结果进行二值化处理,并显示处理结果。

(2)使用Prewitt 算子的图像分割实验使用Prewitt 算子进行内容(1)中的全部步骤。

(3)使用Sobel 算子的图像分割实验使用Sobel 算子进行内容(1)中的全部步骤。

(4)使用Canny算子进行图像分割实验。

(5) 使用拉普拉斯算子进行图像分割实验。

代码如下:

function U()
    clear;
    clc;
    Single_threshold_segmentation()
    Multi_threshold_segmentation()
    edge_detection()
end

% 单阈值分割
% 先将一幅彩色图像转换为灰度图像,显示其直方图,
% 参考直方图中灰度的分布,尝试确定阈值
% 给图像加上零均值的高斯噪声重复上述过程
function Single_threshold_segmentation()
    img = imread('gantrycrane.png');    % 读取图像
    figure('Name','单阈值分割');  % 开一个叫单阈值分割的窗口
    subplot(2,4,1);imshow(img);title('gantrycrane.png原图');   % 显示原图
    img = rgb2gray(img);    % 彩色图像转为灰度图像
    subplot(2,4,2);imshow(img);title('gantrycrane.png灰度图');   % 显示灰度图
    subplot(2,4,3);imhist(img);title('gantrycrane.png直方图');   % 显示直方图
    % x = 95; % 分割阈值
    % img1 = uint8((0*(img<=x)+255.*(img>x))); % 图像分割
    x = graythresh(img);    % 分割阈值
    img1 = im2bw(img,x);    % 图像分割
    subplot(2,4,4);imshow(img1);title('gantrycrane.png二值图');   % 显示二值图
    img = imnoise(img,'gaussian');        % 添加高斯噪声
    subplot(2,4,6);imshow(img);title('gantrycrane.png噪声灰度图');   % 显示噪声灰度图
    subplot(2,4,7);imhist(img);title('gantrycrane.png噪声直方图');   % 显示噪声直方图
    % x = 95; % 分割阈值
    % img1 = uint8((0*(img<=x)+255.*(img>x))); % 图像分割
    x = graythresh(img);    % 分割阈值
    img1 = im2bw(img,x);    % 图像分割
    subplot(2,4,8);imshow(img1);title('gantrycrane.png噪声二值图');   % 显示噪声二值图
end
% 多阈值分割
function Multi_threshold_segmentation()
    img = imread('cameraman.tif');    % 读取图像
    figure('Name','多阈值分割');  % 开一个叫多阈值分割的窗口
    subplot(2,2,1);imshow(img);title('cameraman.tif原图');   % 显示原图
    subplot(2,2,2);imhist(img);title('cameraman.tif直方图');   % 显示直方图
    x_1 = 77; % 分割阈值
    x_2 = 139;
    img1 = uint8(0*(img<=x_1)+round((x_1+x_2)/2)*((img>x_1)&(img<=x_2))+255*(img>x_2)); % 图像分割
    subplot(2,2,3);imshow(img1);title('gantrycrane.png分割图');   % 显示分割图
end

% 边缘检测
% 使用Roberts,Prewitt,Sobel,Canny,拉普拉斯算子
function edge_detection()
    img = imread('cameraman.tif');  % 读取图像
    figure('Name','边缘检测');  % 开一个叫边缘检测的窗口
    subplot(2,3,1);imshow(img);title('cameraman.tif原图');   % 显示原图
    img1 = ed(img,[[0 1;-1 0];[1 0;0 -1]]);    % 使用 Roberts 算子
    subplot(2,3,2);imshow(img1);title('Roberts 算子');   % Roberts 算子处理图像
    img1 = ed(img,[[-1 -1 -1;0 0 0;1 1 1];[-1 0 1;-1 0 1;-1 0 1]]);    % 使用 Prewitt 算子
    subplot(2,3,3);imshow(img1);title('Prewitt 算子');   % Prewitt 算子处理图像
    img1 = ed(img,[[-1 -2 -1;0 0 0;1 2 1];[-1 0 1;-2 0 2;-1 0 1;]]);    % 使用 Sobel 算子
    subplot(2,3,4);imshow(img1);title('Sobel 算子');   % Sobel 算子处理图像
    img1 = ed(img,[[-1 1;-1 1];[-1 -1;1 1]]);    % 使用 Canny算子
    subplot(2,3,5);imshow(img1);title('Canny算子');   % Canny算子处理图像
    img1 = ed(img,[[0 -1 0;-1 4 -1;0 -1 0];[-1 -1 -1;-1 8 -1;-1 -1 -1]]);    % 使用 Laplace算子
    subplot(2,3,5);imshow(img1);title('Laplace算子');   % Laplace算子处理图像
end

% 进行卷积和二值化
function img2 = ed(img,x)
    s = size(x);
    img1 = zeros(size(img));
    for i = 1:s(1)/s(2)
        img1 = img1 + abs(conv2(img,x(1+s(2)*(i-1):s(2)*i,1:s(2)),'same'));
    end
    img1 = uint8(img1);
    img2 = im2bw(img1,graythresh(img1));
end

结果如下:

在边缘检测中加入阈值分割,matlab,计算机视觉,人工智能

在边缘检测中加入阈值分割,matlab,计算机视觉,人工智能

在边缘检测中加入阈值分割,matlab,计算机视觉,人工智能文章来源地址https://www.toymoban.com/news/detail-795761.html

到了这里,关于利用Matlab进行图像分割和边缘检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab图像处理-多阈值分割

    多阈值分割 在某些时候图像使用单独的阈值不能够对其实现有效地分割,例如在灰度直方图中有明显的三个峰时候,我们需要提取中间峰,这时我们使用双阈值分割会得到较好的分割效果。如下例子中生成灰度直方图中有两个峰,选择合适的两个阈值进行多阈值分割后可生成

    2024年02月09日
    浏览(37)
  • (数字图像处理MATLAB+Python)第十章图像分割-第一、二节:阈值分割和边界分割

    图像分割 :在对图像的研究和应用中,人们往往仅对图像中的某些目标感兴趣,这些目标通常对应图像中具有特定性质的区域。图像分割是指把一幅图像分成不同的具有特定性质区域的图像处理技术,将这些区域分离提取出来,以便进一步提取特征和理解 图像分割方法多种

    2024年02月16日
    浏览(39)
  • Matlab遗传算法道路图像阈值分割(附上完整源码)

    图像阈值分割是图像处理中常用的一种方法,用于将图像分割为不同的区域。本文介绍了遗传算法在道路图像阈值分割中的应用。首先,对图像进行预处理,包括图像的灰度化和噪声去除。然后,通过遗传算法优化阈值的选择,以得到最佳的分割结果。实验结果表明,遗传算

    2024年02月12日
    浏览(26)
  • 图像处理之canny边缘检测(非极大值抑制和高低阈值)

    Canny算子是John F.Canny 大佬在1986年在其发表的论文 《Canny J. A computational approach to edge detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986 (6): 679-698.》提出来的。 低错误率。所有边缘都应该被找到,并且应该没有伪响应。也就是检测到的边缘必须尽可能时真实的边缘

    2024年02月16日
    浏览(32)
  • 图像处理技术:数字图像分割 ------ 图像分割、边界分割(边缘检测)、区域分割

    是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分 成若干个互不相交的区域,使得这些特征在同一区域内表现出一致 性或相似性,而在不同区域间表现出明显的不同 分割出来的区域应该同时满足:  (1)分割出来的图像区域的均匀性和连通性。 • 均匀性是指该

    2024年02月04日
    浏览(36)
  • 数字图像处理:图像分割——边缘检测与区域分割

    1.图像分割:根据图像的某些局部特征(灰度级、纹理、彩色或统计特征等)的相似性和互斥性,将图像分割成若干子区域,在每个子区域内部具有相似(相同或相近)特性,而相邻子区域的特性互斥。所以图像分割是利用图像局部特征的相似性和互斥性。 2.图像分割方法分

    2024年02月05日
    浏览(30)
  • 【图像分割】基于浣熊优化算法COA的Otsu(大津法)多阈值电表数字图像分割 电表数字识别【Matlab代码#52】

    长鼻浣熊优化算法(Cоati Optimization Algorithm,COA)是一种启发式优化算法,灵感来源于长鼻浣熊(Coati)的行为策略。长鼻浣熊优化算法基于长鼻浣熊在觅食过程中的特性和行为模式。长鼻浣熊是一种树栖动物,具有长而灵活的鼻子,用于觅食和捕食。它们通过嗅觉感知周围环

    2024年02月16日
    浏览(28)
  • 图像分割--点、线和边缘检测

    图像分割是指将图像细分为构成它的子区域或物体 本章算法基于灰度值的两个基本性质之一:不连续性和相似性 就像局部平均平滑一幅图像那样,假设平均处理类似于积分,对于灰度的突变,局部变化可以用微分来检测 使用空间滤波器来计算图像中每个像素位置处的一阶导

    2024年02月09日
    浏览(34)
  • matlab中图像分割技术之一边缘检测

    1.边缘检测 (1)Roberts边缘算子 (2)Sobel算子 (3)Prewitt算子 (4)拉普拉斯(Laplacian)算子 (5)LOG(Laplacian-Gauss)算子 (6)坎尼(Canny)算子 (7)利用霍夫(Hough)变换 图像分割技术图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴趣的目标的技术和过程。在

    2024年02月06日
    浏览(30)
  • python数字图像处理基础(五)——Canny边缘检测、图像金字塔、图像分割

    梯度是什么? 梯度就是变化的最快的那个方向 edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]]) 第一个参数是需要处理的原图像,该图像必须为单通道的灰度图; 第二个参数是阈值1; 第三个参数是阈值2。 原理步骤 1)使用高斯滤波器,以平滑图像,滤除噪

    2024年01月18日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包