数字图像处理(三)

这篇具有很好参考价值的文章主要介绍了数字图像处理(三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

实验六、图像分割方法

 实验七、图像识别与分类


实验六、图像分割方法

一、实验目的

  1. 了解图像分割技术相关基础知识;
  2. 掌握几种经典边缘检测算子的基本原理、实现步骤
  3. 理解阈值分割、区域分割等的基本原理、实现步骤。
  4. 理解分水岭分割方法的基本原理、实现方法。

二、实验环境

MATLAB 2014以上版本、Win 8\10\11 系统

三、实验原理

1.图像分割原理

图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴趣的目标的技术和过程。在对图像的研究和应用中,人们往往仅对图像的某些部分感兴趣(目标或背景),一般对应图像中特定的、具有独特性质的区域。为了分析和识别目标,需要将这部分区域分割并提取出来。由于图像分割技术在当今图像工程的发展过程中起着十分重要的作用,得到了广泛应用,促使人们致力于寻找新的理论和方法来提高图像分割的质量,以满足各方面的需求。

涉及函数:imread、figure、imshow、subplot、rgb2gray、imwrite、edge、graythresh

四、实验内容

(1)新建一个m文件,从桌面示例图像文件夹中读取一张彩色图像,转换为灰度图,分别使用Robert、Sobel、Canny、Laplacian算子检测图像边缘,并将原图及边缘检测结果显示在同一figure界面,比较检测结果异同。

clc;clear;close all;

I=imread('V.jpg');

gray_img = rgb2gray(I);

BW1=edge(gray_img,'Roberts',0.04);

BW2=edge(gray_img,'Sobel',0.04);

BW3=edge(gray_img,'Canny',0.04);

BW4=edge(gray_img,'log',0.04);

subplot(321),imshow(I),title('原图像')

subplot(323),imshow(BW1),title('Roberts检测图像')

subplot(324),imshow(BW2),title('Sobel检测图像')

subplot(325),imshow(BW3),title('Canny检测图像')

subplot(326),imshow(BW4),title('Laplacian检测图像')

数字图像处理(三)

(2)读取一张彩色图像,转换为灰度图,使用最大类间方差法分割图像,原图及分割结果显示在同一界面。

clc;clear;clear all;

% 读取彩色图像

color_img = imread('V.jpg');

% 转换为灰度图像

gray_img = rgb2gray(color_img);

% 最大类间方差法分割图像

threshold = graythresh(gray_img);

seg_img = imbinarize(gray_img, threshold);

% 显示原图及分割结果

figure;

subplot(1,2,1);

imshow(color_img);

title('原图');

subplot(1,2,2);

imshow(seg_img);

title('分割结果');

数字图像处理(三)

(3)读取一张彩色图像,使用区域生长法对图像进行分割,原图及分割结果显示在同一界面。

clc;clear;close all;

A0=imread('V.jpg');%读取图像

seed=[1,2];%选择起始位置

thresh=15;%相似性选择阈值

A=rgb2gray(A0);%灰度化

A=imadjust(A,[min(min(double(A)))/255,max(max(double(A)))/255],[]);

A=double(A);%将图像灰度化

B=A;

[r,c]=size(B);%r为行数,c为列

n=r*c;%计算图像包含点的个数

pixel_seed=A(seed(1),seed(2));%原图起始点灰度值

q=[seed(1),seed(2)];%q用来装载起始位置

top=1;%循环判断flag

M=zeros(r,c);%建立一个与原图大小一样的矩阵

M(seed(1),seed(2))=1;%将起始点赋为1,其余为0

count=1;%计数器

while top~=0 %循环结束条件

    r1=q(1,1);%起始点行位置

    c1=q(1,2);%起始点列位置

    p=A(r1,c1);%起始点灰度值

    dge=0;

    for i=-1:1%周围点循环判断

        for j=-1:1

           

            if r1+i<=r & r1+i>0 & c1+j<=c & c1+j>0%保证在点周围范围内

                if abs(A(r1+i,c1+j)-p)<=thresh & M(r1+i,c1+j)~=1

                    top=top+1;%满足判定条件则top+1,top为多少,则q的行数有多少

                    q(top,:)=[r1+i,c1+j];%将满足判定条件的周围点位置赋予q,q记载了满足判定的每一外点

                    M(r1+i,c1+j)=1;%满足判定条件将M中相对应的点赋1

                    count=count+1;%统计满足条件的点个数,其实与top此时的值一样

                    B(r1+i,c1+j)=1;%满足判定条件将B中相对应点赋值1

                end

               

                if M(r1+i,c1+j)==0;%如果M中相对应的值为0,将dge赋值为1,也就是说这几个点不满足条件

                    dge=1;

                end

               

            else

                dge=1;%在图像外将dge赋值为1

            end

        end

    end

    %此时对周围几点判断完毕,在点在图像外或不满足判定条件则将dge赋为1,满足条件dge为0

    if dge~=1

        B(r1,c1)=A(seed(1),seed(2));%将原图起始位置赋予B

    end

   

    if count>=n%如果满足判定条件的点个数大于等于n

        top=1;

    end

   

    q=q(2:top,:);

    top=top-1;

end

subplot(121),imshow(A,[]);

subplot(122),imshow(B,[]);

数字图像处理(三)

(4)读取一张彩色图像,使用一般分水岭算法对图像进行分割,原图及分割图像显示在同一界面。

clc;clear;close all;

% 读取彩色图像

image = imread('V.jpg');

% 将图像转换为灰度图像

gray_image = rgb2gray(image);

% 对灰度图像进行分水岭分割

segmented_image = watershed(gray_image);

% 将原图和分割图像显示在同一界面

figure;

subplot(1,2,1);

imshow(image);

title('原图');

subplot(1,2,2);

imshow(segmented_image);

title('分割图像');

数字图像处理(三)

 实验七、图像识别与分类

一、实验目的

  1. 了解图像识别与分类技术相关基础知识;
  2. 掌握几种图像特征提取方法的基本原理、实现步骤
  3. 了解图像识别与分类的基本原理、实现步骤。
  4. 掌握基础图像识别与分类任务设计方法,并编程实现。

二、实验环境

MATLAB 2014以上版本、Win 8\10\11 系统

三、实验原理

图像识别是指通过计算机对图像进行处理、分析和处理,以识别各种不同模式的目标和对象的技术,图像分类则是根据目标的不同特征基于分类器或判别器判别输入图像所属类别过程。图像的识别与分类是数字图像处理与分析领域中最为经典的应用与任务之一。

传统图像识别与分类方法基本流程如下:

数字图像处理(三)

数字图像处理(三)

涉及函数:imread、figure、imshow、subplot、rgb2gray、imwrite、imdilate、bwmorph、strel、imerode等

四、实验内容

(1)新建一个m文件,从桌面示例图像文件夹中读取一张彩色图像,转换为灰度图,使用strel构造两个不同的结构元素,接着利用imdilate函数分别进行膨胀处理,并将原图及两个膨胀处理结果显示在同一figure界面。

clc;clear;close all;

I=imread('V.jpg');

J=rgb2gray(I);

se1=strel('ball',5,5);

se2=strel('octagon',3);

K1=imdilate(J,se1);

K2=imdilate(J,se2);

figure

subplot(131),imshow(I),title('原图像')

subplot(132),imshow(K1),title('膨胀结果1')

subplot(133),imshow(K2),title('膨胀结果2')

数字图像处理(三)

(2)从桌面示例图像文件夹中读取一张彩色图像,转换为灰度图,使用strel构造两个不同的结构元素,接着利用imerode函数分别进行腐蚀处理,并将原图及两个腐蚀处理结果显示在同一figure界面。

clc;clear;close all;

I=imread('V.jpg');

J=rgb2gray(I);

se1=strel('ball',5,5);

se2=strel('octagon',3);

K1=imerode(J,se1);

K2=imerode(J,se2);

figure

subplot(131),imshow(I),title('原图像')

subplot(132),imshow(K1),title('腐蚀结果1')

subplot(133),imshow(K2),title('腐蚀结果2')

数字图像处理(三)

(3)使用im2bw函数将下图转为二值图像,使用开运算先腐蚀后膨胀,分别提取图中的矩形块及线段,结果显示在同一figure,分别命名为“原始二值图像”、“矩形块提取结果”、“线段提取”。

数字图像处理(三) 

clc;clear;close all;

% 读取图像

image = imread('a.jpg');

% 将图像转为二值图像

binary_image = im2bw(image);

% 创建一个新的figure,并将原始二值图像显示在第一个子图中

figure;

% 子图1:原始二值图像

subplot(1, 3, 1);

imshow(binary_image);

title('原始二值图像');

% 应用开运算进行腐蚀和膨胀

se = strel('square', 5); % 定义一个5x5的正方形结构元素

opened_image = imopen(binary_image, se);

% 子图2:矩形块提取结果

subplot(1, 3, 2);

imshow(opened_image);

title('矩形块提取结果');

% 提取线段

line_image = binary_image - opened_image;

% 子图3:线段提取结果

subplot(1, 3, 3);

imshow(line_image);

title('线段提取');

% 调整子图的布局

sgtitle('图像处理结果');

数字图像处理(三)

(4)将下图转为二值图像,并进行降噪、锐化处理,通过形态学运算提取轮廓,并进行计数。

数字图像处理(三) 

clc;clear;close all;

% 读取图像

image = imread('b.jpg');

% 将图像转为灰度图像

grayImage = rgb2gray(image);

% 将灰度图像转为二值图像

binaryImage = imbinarize(grayImage);

% 降噪处理

denoisedImage = medfilt2(binaryImage);

% 锐化处理

sharpKernel = fspecial('unsharp');

sharpImage = imfilter(denoisedImage, sharpKernel, 'replicate');

% 形态学运算提取轮廓

se = strel('disk', 1); % 创建一个半径为1的圆形结构元素

morphImage = imtophat(sharpImage, se);

% 计数轮廓

[~, count] = bwlabel(morphImage);

% 显示处理结果

figure;

subplot(2, 2, 1);

imshow(binaryImage);

title('二值图像');

subplot(2, 2, 2);

imshow(denoisedImage);

title('降噪处理');

subplot(2, 2, 3);

imshow(sharpImage);

title('锐化处理');

subplot(2, 2, 4);

imshow(morphImage);

title('形态学运算提取轮廓');

% 显示轮廓数量

disp(['轮廓数量:', num2str(count)]);

数字图像处理(三)

数字图像处理(三) 

 文章来源地址https://www.toymoban.com/news/detail-491972.html

 

 

 

 

到了这里,关于数字图像处理(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数字图像处理:图像分割——边缘检测与区域分割

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

    2024年02月05日
    浏览(43)
  • NEFU数字图像处理(三)图像分割

    前景和背景 在图像分割中,我们通常需要将图像分为 前景和背景 两个部分。前景是指 图像中我们感兴趣、要分割出来的部分 ,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景,而周围环境则是背景。 区域 区域是指图像中一块连通的像素区域,这些

    2024年02月08日
    浏览(53)
  • OpenCV数字图像处理基于C++:图像分割

    图像阈值化分割是一种常用的、传统的图像分割技术,因其 实现简单、计算量小、性能比较稳定 而成为图像分割中基本和应用广泛的分割技术。特别 适合于目标和背景占据不同灰度级范围的图像 。不仅 可以极大地压缩数据量 ,而且大大 简化了分析和处理的步骤 ,是进行

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

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

    2024年02月16日
    浏览(64)
  • 数字图像处理实验——数字图像处理初步

    一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式的图像; 2.熟练掌握在MATLAB中如何读取图像及图像的属性信息(大小、颜色、亮度(灰度)、宽度、高度等); 3.掌握如何在MATLAB中按照指定要求存储一副图像的方法; 4.了解图像的算术运算在数字图像中的初步应

    2024年02月04日
    浏览(53)
  • 形态学图像处理和图像分割MATLAB实验

    一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。 掌握孤立点检测、线检测和边缘检测的方法。 掌握全局阈值处理的方法。 二、实验内容 1. 开运算和闭运算实验。 图1(a)显示了一幅被噪声图像污染的指纹图像,图1(b)给出了结构元,请自编程

    2024年02月06日
    浏览(51)
  • (数字图像处理MATLAB+Python)第十章图像分割-第四,五节:分水岭分割和综合案例

    分水岭分割 :图像处理中常用的一种分割方法,它基于图像中灰度或颜色的变化来划分不同的区域。分水岭分割算法的原理是基于地理学上的分水岭概念。将图像看作一个 地貌图 ,在图像中低洼的部分被看作水池,而高处则表示山脉。通过在图像中加入水并让其逐渐充满,

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

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

    2024年01月18日
    浏览(47)
  • 数字图像处理:实验三 图像增强

    图像增强是数字图像处理过程中常采用的一种方法。为了改善视觉效果或便于人和机器对图像的理解和分析,根据图像的特点或存在的问题采取的改善方法或加强特征的措施称为图像增强。图像增强处理是改变图像视觉效果的手段,增强后的图像便于对它的后续处理。图像增

    2024年02月04日
    浏览(50)
  • 数字图像处理实验四--图像变换

    (图像变换) 实验内容: 对图像lena、cameraman和face进行傅里叶变换,观察图像能量在频谱图中的分布情况。 利用Matlab生成下列图像,并对其进行旋转30度、90度和120度,然后对他们分别进行傅里叶变换。 对图像lena、cameraman和face用DCT变换进行图像压缩,舍掉的变换系数分别小

    2024年04月14日
    浏览(66)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包