当前位置:文档之家› 实验二 图像分割与边缘检测

实验二 图像分割与边缘检测

实验二  图像分割与边缘检测
实验二  图像分割与边缘检测

实验二图像分割与边缘检测

一.实验目的及要求

1.利用MATLAB研究图像分割与边缘检测的常用算法原理;

2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;

3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。

二、实验内容

(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

1.图像阈值分割

clear all, close all;

I = imread('rice.tif');

figure (1),imshow(I)

figure(2); imhist(I)

T=120/255;

Ibw1 = im2bw(I,T); %选择阈值T=120/255对图像二值化;

figure(3);

subplot(1,2,1), imshow(Ibw1);

T=graythresh(I); %采用Otsu方法计算最优阈值T对图像二值化;

L = uint8(T*255)

Ibw2 = im2bw(I,T);

subplot(1,2,2), imshow(Ibw2);

help im2bw;

help graythresh;

(令T取不同值,重做上述试验,观察试验结果)

以下是程序执行结果:

Comand窗口:

L =

125

IM2BW Convert image to binary image by thresholding.

IM2BW produces binary images from indexed, intensity, or RGB

images. To do this, it converts the input image to grayscale

format (if it is not already an intensity image), and then

converts this grayscale image to binary by thresholding. The

output binary image BW has values of 0 (black) for all pixels

in the input image with luminance less than LEVEL and 1

(white) for all other pixels. (Note that you specify LEVEL in

the range [0,1], regardless of the class of the input image.)

BW = IM2BW(I,LEVEL) converts the intensity image I to black

and white.

BW = IM2BW(X,MAP,LEVEL) converts the indexed image X with

colormap MAP to black and white.

BW = IM2BW(RGB,LEVEL) converts the RGB image RGB to black and

white.

Note that the function GRAYTHRESH can be used to compute LEVEL

automatically.

Class Support

-------------

The input image can be of class uint8, uint16, or double.

The output image BW is of class uint8.

Example

-------

load trees

BW = im2bw(X,map,0.4);

imshow(X,map), figure, imshow(BW)

See also GRAYTHRESH, IND2GRAY, RGB2GRAY.

GRAYTHRESH Compute global image threshold using Otsu's method.

LEVEL = GRAYTHRESH(I) computes a global threshold (LEVEL) that can be used to convert an intensity image to a binary image with IM2BW. LEVEL

is a normalized intensity value that lies in the range [0, 1].

GRAYTHRESH uses Otsu's method, which chooses the threshold to minimize the intraclass variance of the thresholded black and white pixels.

Class Support

-------------

The input image I can be of class uint8, uint16, or double. LEVEL

is a double scalar.

Example

-------

I = imread('blood1.tif');

level = graythresh(I);

BW = im2bw(I,level);

imshow(BW)

See also IM2BW.

下面是T取不同值时的所得的结果:

T=60时:

原图像原图像的灰度直方图

T=60时分割的结果Otsu方法分割的结果

T=120时:

原图像原图像的灰度直方图

T=120时分割的结果Otsu方法分割的结果

T=200时:

原图像原图像的灰度直方图

T=120时分割的结果Otsu方法分割的结果

对以上实验结果分析如下:

由matalab命令窗口显示的内容可知,不同的阈值分割的结果并不一样。由灰度直方图可以知道,可以利用双峰发对图像进行分割,即认为背景由前景和背景组成,图像的灰度分布曲线可近似认为是有两个正态分布函数叠加而成,图像的直方图将会出现两个分离的峰值,在波谷处即为最佳阈值。所以在实验结果中,T=120时分割的结果要明显好于另外两个分割结果,因为其更接近“波谷值”。

graythresh函数是用大津法计算全局图像的阈值。大津法是采用方差最大的方法区分前景和背景。方差是灰度分布均匀的度量,其原理是;如果某个阈值使背景和前景像素相互参杂,那么图像的图像灰度像素肯定较为均匀,只有前景和背景分离开才会使均匀性最差,即方差最大。

2.边缘检测

clear all, close all;

I = imread('rice.tif');

BW1 = edge(I,'sobel');

BW2 = edge(I,'canny');

BW3 = edge(I,'prewitt');

BW4 = edge(I,'roberts');

BW5 = edge(I,'log');

figure(1), imshow(I), title('Original Image');

figure(2), imshow(BW1), title('sobel');

figure(3), imshow(BW2), title('canny');

figure(4), imshow(BW3), title('prewitt');

figure(5), imshow(BW4), title('roberts');

figure(6), imshow(BW5), title('log');

% 在完成上述试验后,查看函数edge()使用说明。

help edge

% 仔细阅读函数edge()使用说明后,研究IPT提供的边缘检测演示程序。edgedemo

下面是程序执行的结果:

command窗口:

help edge

EDGE Find edges in intensity image.

EDGE takes an intensity image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in I

and 0's elsewhere.

EDGE supports six different edge-finding methods:

The Sobel method finds edges using the Sobel approximation to the

derivative. It returns edges at those points where the gradient of

I is maximum.

The Prewitt method finds edges using the Prewitt approximation to

the derivative. It returns edges at those points where the gradient

of I is maximum.

The Roberts method finds edges using the Roberts approximation to

the derivative. It returns edges at those points where the gradient

of I is maximum.

The Laplacian of Gaussian method finds edges by looking for zero

crossings after filtering I with a Laplacian of Gaussian filter.

The zero-cross method finds edges by looking for zero crossings

after filtering I with a filter you specify.

The Canny method finds edges by looking for local maxima of the

gradient of I. The gradient is calculated using the derivative of a

Gaussian filter. The method uses two thresholds, to detect strong

and weak edges, and includes the weak edges in the output only if

they are connected to strong edges. This method is therefore less

likely than the others to be "fooled" by noise, and more likely to

detect true weak edges.

The parameters you can supply differ depending on the method you

specify. If you do not specify a method, EDGE uses the Sobel method.

Sobel Method

------------

BW = EDGE(I,'sobel') specifies the Sobel method.

BW = EDGE(I,'sobel',THRESH) specifies the sensitivity threshold for

the Sobel method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.

BW = EDGE(I,'sobel',THRESH,DIRECTION) specifies directionality for the Sobel method. DIRECTION is a string specifying whether to look for

'horizontal' or 'vertical' edges, or 'both' (the default).

[BW,thresh] = EDGE(I,'sobel',...) returns the threshold value.

Prewitt Method

--------------

BW = EDGE(I,'prewitt') specifies the Prewitt method.

BW = EDGE(I,'prewitt',THRESH) specifies the sensitivity threshold for

the Prewitt method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.

BW = EDGE(I,'prewitt',THRESH,DIRECTION) specifies directionality for the Prewitt method. DIRECTION is a string specifying whether to look

for 'horizontal' or 'vertical' edges, or 'both' (the default).

[BW,thresh] = EDGE(I,'prewitt',...) returns the threshold value.

Roberts Method

--------------

BW = EDGE(I,'roberts') specifies the Roberts method.

BW = EDGE(I,'roberts',THRESH) specifies the sensitivity threshold for

the Roberts method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.

[BW,thresh] = EDGE(I,'roberts',...) returns the threshold value.

Laplacian of Gaussian Method

----------------------------

BW = EDGE(I,'log') specifies the Laplacian of Gaussian method.

BW = EDGE(I,'log',THRESH) specifies the sensitivity threshold for the Laplacian of Gaussian method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.

BW = EDGE(I,'log',THRESH,SIGMA) specifies the Laplacian of Gaussian method, using SIGMA as the standard deviation of the LoG filter. The default SIGMA is 2; the size of the filter is N-by-N, where

N=CEIL(SIGMA*3)*2+1.

[BW,thresh] = EDGE(I,'log',...) returns the threshold value.

Zero-cross Method

-----------------

BW = EDGE(I,'zerocross',THRESH,H) specifies the zero-cross method, using the specified filter H. If THRESH is empty ([]), EDGE chooses

the sensitivity threshold automatically.

[BW,THRESH] = EDGE(I,'zerocross',...) returns the threshold value.

Canny Method

----------------------------

BW = EDGE(I,'canny') specifies the Canny method.

BW = EDGE(I,'canny',THRESH) specifies sensitivity thresholds for the Canny method. THRESH is a two-element vector in which the first element is the low threshold, and the second element is the high threshold. If

you specify a scalar for THRESH, this value is used for the high

threshold and 0.4*THRESH is used for the low threshold. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses low and high values automatically.

BW = EDGE(I,'canny',THRESH,SIGMA) specifies the Canny method, using SIGMA as the standard deviation of the Gaussian filter. The default SIGMA is 1; the size of the filter is chosen automatically, based

on SIGMA.

[BW,thresh] = EDGE(I,'canny',...) returns the threshold values as a

two-element vector.

Class Support

-------------

I can be of class uint8, uint16, or double. BW is of class uint8.

Remarks

-------

For the 'log' and 'zerocross' methods, if you specify a

threshold of 0, the output image has closed contours, because

it includes all of the zero crossings in the input image.

Example

-------

Find the edges of the rice.tif image using the Prewitt and Canny methods:

I = imread('rice.tif');

BW1 = edge(I,'prewitt');

BW2 = edge(I,'canny');

imshow(BW1)

figure, imshow(BW2)

See also FSPECIAL.

实验结果分析如下:

以上是不同的算子对图像的分割结果。edge函数可以带入不同的的算子对图像进行边缘检测的函数。其中Robret算子、Sobel算子、Prewitt算子为一阶边缘检测算子,log算子为二阶边缘检测算子,Canny算子是一种寻找图像梯度的局部极大值。由结果可知,canny算子分割结果较为理想,基本上将原图像的所有边缘都分割出来了。

(二)采用MATLAB编程实现自动全局阈值算法,对图像'rice.tif'进行二值化分割

算法步骤:

1)选取一个的初始估计值T;

2)用T分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T 的像素组成,而G2由所有灰度值小于或等于T 的像素组成。

3)对G1和G2中所有像素计算平均灰度值μ1和μ2。

4)计算新的阈值:T =(μ1+μ2)/2

5)重复步骤(2)到(4),直到逐次迭代所得到的T 值之差小于一个事先定义的参数T o,即,如果|T n– T n-1|

用matlab编程如下:

clc;clear all;

I=imread('rice.tif');I=double(I)/255;

k1=(max(max(I))+min(min(I)))/2;

[rows cols]=size(I);

count1=0;

count2=0;

for i=1:rows

for j=1:cols

if I(i,j)

count1=count1+1;

G1(count1).I=I(i,j);

else

count2=count2+1;

G2(count2).I=I(i,j);

end

end

end

k2=(mean(mean([G1.I]))+mean(mean([G2.I])))/2;

while(abs(k2-k1)>(5/255))

k1=k2;

count1=0;

count2=0;

for i=1:rows

for j=1:cols

if I(i,j)

count1=count1+1;

G1(count1).I=I(i,j);

else

count2=count2+1;

G2(count2).I=I(i,j);

end

end

end

k2=(mean(mean([G1.I]))+mean(mean([G2.I])))/2; end

figure(1);imshow(I);

figure(2);II=im2bw(I,k2);imshow(II);

程序执行结果如下:

原图像分割后的图像

三、实验设备

1.PIII以上微机;

2.MATLAB6.5;

四、实验体会与心得

通过此次实验,使我进一步熟悉了matlab编程语言,学会了很多图像分割函数的使用。最后的全局阈值算法,是自己独立编程完成的,感觉收获很多,只有自己真正会用编程语言并对知识真正的掌握了,才能将知识在程序语言中灵活实现。当看到自己程序所出现的实验结果时,自己真的非常的高兴,不仅增加对于学习数字图像处理课程的兴趣,而且也增强了自己独立解决问题的自信。在这也感谢老师实验时的耐心指导。

实验-四-图像分割与边缘检测

实验四图像分割与边缘检测 一.实验目的及要求 1.利用MATLAB研究图像分割与边缘检测的常用算法原理; 2.掌握MATLAB图像域值分割与边缘检测函数的使用方法; 3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。 二、实验内容 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 1.图像阈值分割 clear all, close all; I = imread('cameraman.tif'); figure (1),imshow(I) figure(2); imhist(I) T=120/255; Ibw1 = im2bw(I,T); figure(3); subplot(1,2,1), imshow(Ibw1); T=graythresh(I); L = uint8(T*255) Ibw2 = im2bw(I,T); subplot(1,2,2), imshow(Ibw2);

help im2bw; help graythresh; clear all, close all; I = imread('cameraman.tif'); figure (1),imshow(I) figure(2); imhist(I) T=240/255; Ibw1 = im2bw(I,T); figure(3); subplot(1,2,1), imshow(Ibw1); T=graythresh(I); L = uint8(T*255) Ibw2 = im2bw(I,T); subplot(1,2,2), imshow(Ibw2); help im2bw; help graythresh;

图像的阈值分割及边缘检测技术

数字图像处理实验报告 题目:图像的阈值分割及边缘检测技术 班级: 姓名: 学号:

图像的阈值分割及边缘检测技术 一、实验目的 1、了解图像的分割技术,掌握图像的全局阈值分割技术并通过MATLAB实现; 2、了解图像的边缘检测,掌握梯度算子图像边缘检测方法。 二、实验内容 1、基于直方图的全局阈值图像分割方法; 2、Edge命令(roberts,perwitt,sobel,log,canny),实现边缘检测。 三、实验原理 1、全局阈值是最简单的图像分割方法。其中,直方图法的原理如下:想做出图 像的直方图,若其直方图呈双峰且有明显的谷底,则可以讲谷底点所对应的灰度值作为阈值T,然后根据该阈值进行分割,九可以讲目标从图像中分割出来。这种方法是用于目标和背景的灰度差较大且直方图有明显谷底的情况。 2、用于边缘检测的梯度算子主要有Roberts算子、Prewitt算子、Sobel算子。 这三种检测算子中,Roberts算子定位精度较高,但也易丢失部分边缘,抗噪声能力差,适用于低噪声、陡峭边缘的场合。Prewitt算子、Sobel算子首先对图像做平滑处理,因此具有一定的抑制噪声的能力,但不能排除检测结果中的虚假边缘,易出现多像素宽度。

四、实验步骤 1、全局阈值分割: ①读取一张图像; ②生成该图像的直方图; ③根据直方图双峰产生的低谷估计阈值T; ④依次读取图像各个点的像素,若大于阈值,则将像素改为255,若小于 阈值,则将该像素改为0; 实验代码如下: I=imread('cameraman.tif'); %读取一张图像 subplot(221);imshow(I); %显示该图像 subplot(222);imhist(I); %生成该图像的直方图 T=60; %根据直方图估计阈值T为60 [m,n]=size(I); %取图像的大小为【m,n】 for i=1:m %依次读取图像各个点的像素,若大于阈 值,则将像素改为255,若小于阈值, 则将该像素改为0 for j=1:n if I(i,j)>=T I(i,j)=255; else I(i,j)=0; end end

实验六-图像分割教学文稿

实验六-图像分割

信息工程学院实验报告 课程名称:数字图像处理 实验项目名称:实验六图像分割实验时间:2016.12.16 班级:姓名:学号: 一、实验目的 1. 使用MatLab 软件进行图像的分割。使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。 2. 要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。能够掌握分割条件(阈值等)的选择。完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。 二、实验内容与步骤 1.边缘检测 (1)使用Roberts 算子的图像分割实验 调入并显示图像room.tif图像;使用Roberts 算子对图像进行边缘检测处理; Roberts 算子为一对模板: (a)450方向模板(b)1350方向模板 图 1 matlab 2010的Roberts算子模板 相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这里的rh 为45度Roberts 算子,rv 为135度Roberts 算子。分别显示处理后的45度方向和135方向的边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果。 提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。 (2)使用Prewitt 算子的图像分割实验

(a)水平模型(b)垂直模板 图2. Prewitt算子模板 使用Prewitt 算子进行内容(1)中的全部步骤。 (3)使用Sobel 算子的图像分割实验 使用Sobel (a)水平模型(b)垂直模板 图3. Sobel算子模板 (4)使用LoG (拉普拉斯-高斯)算子的图像分割实验 使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。 (5) 打印全部结果并进行讨论。 下面是使用sobel算子对图像进行分割的MATLAB程序 f=imread('room.tif'); [gv,t1]=edge(f,'sobel','vertical');%使用edge函数对图像f提取垂直边缘 imshow(gv) [gb,t2]=edge(f,'sobel','horizontal');%使用edge函数对图像f提取水平边缘 figure,imshow(gb) w45=[-2 -1 0;-1 0 1;0 1 2];%指定模版使用imfilter计算45度方向的边缘 g45=imfilter(double(f),w45,'replicate'); T=0.3*max(abs(g45(:))); %设定阈值 g45=g45>=T; %进行阈值处理 figure,imshow(g45); 在函数中使用'prewitt'和'roberts'的过程,类似于使用sobel边缘检测器的过程。

图像分割和边缘检测

岭南师范学院 课程名称数字图像处理 实验序号实验5 实验名称图像分割和边缘检测 实验地点综B207 2017年10 月14 日

四、实验过程(实验步骤、记录、数据、分析) 1.基于一阶导数的边缘算子 a=imread('y.jpg'); f=rgb2gray(a); subplot(2,2,1),imshow(f),title('原始图像'); [g1 , t1]=edge(f,'roberts',[ ], 'horizontal'); subplot(2,2,2), imshow(g1),title('Roberts'); [g2, t2]=edge(f, 'sobel',[ ], 'horizontal'); subplot(2,2,3), imshow(g2),title('Sobel'); [g3, t3]=edge(f, 'prewitt',[ ], 'horizontal'); subplot(2,2,4), imshow(g3),title('Prewitt'); 从图像结果来看,'Roberts'的边缘检测范围更加大 2、基于二阶导数的边缘算子:应用LOG算子检测边缘 a=imread('y.jpg'); f=rgb2gray(a); subplot(1,2,1),imshow(f),title('原始图像'); [g , t]=edge(f, 'log'); subplot(1,2,2),imshow(g),title('log');

3、基于约束条件的最优化检测边缘算子:应用Canny算子检测边缘a=imread('y.jpg'); f=rgb2gray(a); subplot(1,2,1),imshow(f),title('原始图像'); [g , t]=edge(f,'canny'); subplot(1,2,2),imshow(g),title('Canny');

图像处理实验-图像增强和图像分割

图像处理实验 图像增强和图像分割 一、实验目的: 掌握用空间滤波进行图像增强的基本方法,掌握图像分割的基本方法。 二、 实验要求: 1、测试图像1中同时含有均值为零的均匀分布噪声和椒盐噪声。用大小为5×5的算术均值滤波器和中值滤波器对图像进行处理,在不同窗口中显示原图像及各处理结果图像,并分析哪一种滤波器去噪效果好? 2、对测试图像2进行图像分割,求出分割测试图像2的最佳阈值。分别显示原图、原图的直方图(标出阈值)、和分割后的二值图。 实验内容: 1. 实验原理 1) 图像增强:流程图: 图像增强可以通过滤波的方式来完成,即消除一部分的噪声。滤波又可以分为均值滤波和中值滤波。 1. 中值滤波原理:中值滤波就是选用一个含有奇数个像素的滑动窗口,将该窗口在图像上扫描,把其中所含像素点按灰度级的升(或降)序排列,取位于中间的灰度值来代替窗口中心点的灰度值。

对于一维序列{N f }: 21,},...,,...,{-=∈=+-m u N i f f f M e d y u i i u i i 对于二维序列{ij F }:为滤波窗口W y ij F Med W ij }{= 2. 均值滤波原理:对于含噪声的原始图像g(s,t)的每一个像素点去一个领 域N ,用N 中所包含的相速的灰度平均值,作为领域平均处理后的图像f(x,y)的像素值,即: ∑∈=xy S t s t s g mn y x f ),(),(1),(? 2) 图像分割: 图像分割:依据图像的灰度、颜色等特征,将一幅图像分为若干个互不重叠的、具有某种同质特征的区域。

本实验中我们是根据灰度值,将灰度值大于阈值T的像素统一置为255,小于的则置为0。如何求出最合适的分割阈值,则需要用到迭代算法。 迭代法算法步骤: (1) 初始化阈值T (一般为原图像所有像素平均值)。 (2) 用T分割图像成两个集合:G1 和G2,其中G1包含所有灰度值小于T的像素,G2包含所有灰度值大于T的像素。 (3) 计算G1中像素的平均值m1及G2中像素的平均值m2。 (4) 计算新的阈值:T =(m1+m2)/2 。 (5)如果新阈值跟原阈值之间的差值小于一个预先设定的范围,停止循环,否则继续(2)-(4)步。 2.程序代码与分析: 1)图像增强: clear all;clc; %读入图像 I1=imread('Fig5.12(b).jpg'); %均值滤波模板 h1=ones(5,'uint8'); %获取分辨率 [a,b]=size(I1); %创建变量 I2=zeros(a+4,b+4,'uint8'); I3=zeros(a+4,b+4,'uint8'); %复制原始图像 for n=3:a+2 for m=3:b+2 I2(n,m)=I1(n-2,m-2); I3(n,m)=I1(n-2,m-2); end end

图像分割实验报告

实验七图像分割 一、实验目的 利用光谱特征进行遥感图像的分割和分割后处理。 二、实验要求 1. 能够根据图像的特征,综合使用不同的方法分割出地物对象。 2. 熟练掌握图像直方图的应用。 3. 掌握彩色图像分割的基本方法 4. 掌握利用波段组合进行图像分割的工作流程 5. 熟悉数学形态学基本方法的应用。 三、实验准备 ●软件准备:ENVI软件 ●数据:兰花.jpg 文字测原始图像.bmp IKNOSm14 nj Hroad ●基本知识: ?图像分割的原则:(1)依据像素灰度值的不连续性进行分割。假定不同区域像素的灰度值具有不连续性,因而可以对其进行分割。(2)依据同一区域内部 像素的灰度值具有相似性进行分割。这种方法一般从一个点(种子)出发,将 其邻域中满足相似性测量准则的像素进行合并从而达到分割的目的。依据像素 的不连续性进行分割的方法只要是区域增长法。 ?图像分割的工作流程:(1)确定待分割的对象;(2)选择对分割对象敏感的波段;(3)选择分割方法进行分割;(4)将分割后的结果图像转为矢量图。 ?图像分割:(1)图像分割是指把图像分成各具特性的区域并提取出感兴趣的目标的技术和过程。从数学角度来看,图像分割是将数字图像划分成互不相交的 区域的过程。图像分割的过程也是一个标记的过程,即将属于同一个区域的像 素赋予相同的编号的过程。(2)目的:将一幅图像分为几个区域,这几个区域 之间具有不同的属性,同一区域中各像素具有某些相同的性质。 ?图像分割的方法:(1)灰度阀值法,它在目标与背景之间存在强对比时特别有效(直方图方法);(2)数学形态学方法,腐蚀、膨胀、开运算和闭运算; ?波段运算:ENVI Band Math是一个灵活的图像处理工具,其中许多功能是无法在任何其它的图像处理系统中获得的。由于每个用户都有独特的需求,利用 此工具用户自己定义处理算法,应用到在ENVI打开的波段或整个图像中,用 户可以根据需要自定义简单或复杂的处理程序。例如:可以对图像进行简单加、 减、乘、除运算,或使用IDL编写更复杂的处理运算功能。 ?波段运算实质是对每个像素点对应的像素值进行数学运算。

图像分割 实验报告

实验报告 课程名称医学图像处理 实验名称图像分割 专业班级 姓名 学号 实验日期 实验地点 2015—2016学年度第 2 学期

050100150200250 图1 原图 3 阈值分割后的二值图像分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,若有多个双峰谷底,则取第一个作为阈值。本题的阈值取

%例2 迭代阈值分割 f=imread('cameraman.tif'); %读入图像 subplot(1,2,1);imshow(f); %创建一个一行二列的窗口,在第一个窗口显示图像title('原始图像'); %标注标题 f=double(f); %转换位双精度 T=(min(f(:))+max(f(:)))/2; %设定初始阈值 done=false; %定义开关变量,用于控制循环次数 i=0; %迭代,初始值i=0 while~done %while ~done 是循环条件,~ 是“非”的意思,此 处done = 0; 说明是无限循环,循环体里面应该还 有循环退出条件,否则就循环到死了; r1=find(f<=T); %按前次结果对t进行二次分 r2=find(f>T); %按前次结果重新对t进行二次分 Tnew=(mean(f(r1))+mean(f(r2)))/2; %新阈值两个范围内像素平均值和的一半done=abs(Tnew-T)<1; %设定两次阈值的比较,当满足小于1时,停止循环, 1是自己指定的参数 T=Tnew; %把Tnw的值赋给T i=i+1; %执行循坏,每次都加1 end f(r1)=0; %把小于初始阈值的变成黑的 f(r2)=1; %把大于初始阈值的变成白的 subplot(1,2,2); %创建一个一行二列的窗口,在第二个窗口显示图像imshow(f); %显示图像 title('迭代阈值二值化图像'); %标注标题 图4原始图像图5迭代阈值二值化图像 分析:本题是迭代阈值二值化分割,步骤是:1.选定初始阈值,即原图大小取平均;2.用初阈值进行二值分割;3.目标灰度值平均背景都取平均;4.迭代生成阈值,直到两次阈值的灰 度变化不超过1,则稳定;5.输出迭代结果。

图像分割与边缘检测

实验一、图像分割与边缘检测 一、实验目的 依据边缘检测的理论,实现灰度图像一阶和二阶边缘检测方法,启发学生依据边缘特征进行图像分析与识别,提高学生图像处理与分析能力和实际动手能力。 二、实验内容 1 编程实现一阶差分边缘检测算法,包括Roberts梯度算子、Prewitt算子和Sobel算子。 2 编程实现二阶差分Laplace边缘检测算法。 3 分析与比较各种边缘检测算法的性能。 三、实验原理 1 基本原理分析(略) 2 部分源程序 1)clc all; [I,map]=imread('rice.png'); figure; subplot(3,2,1),imshow(I,map); I=double(I); [IX IY]=gradient(I); GM=sqrt(IX.*IX+IY.*IY); OUT1=GM; subplot(3,2,2);imshow(OUT1,map); OUT2=I; J=find(GM>=10); OUT2(J)=GM(J); subplot(3,2,3),imshow(OUT2,map); OUT3=I; J=find(GM>=10); OUT3(J)=255; subplot(3,2,4),imshow(OUT3,map); OUT4=I; J=find(GM<=10); OUT4(J)=255; subplot(3,2,5),imshow(OUT4,map); OUT5=I; J=find(GM>=10); OUT5(J)=255; Q=find(GM<10); OUT5(Q)=0; subplot(3,2,6),imshow(OUT5,map); 2) I = imread('coins.png'); BW1 = edge(I,'roberts'); BW2 = edge(I,'prewitt'); BW3 = edge(I,'sobel'); BW4 = edge(I,'log'); BW5 = edge(I,'canny'); figure

数字图像处理实验 图像分割

实验报告 实验名称实验四图像分割 课程名称数字图像处理A 姓名成绩 班级学号 日期地点 1.实验目的 (1)了解并掌握图像分割的基本原理; (2)编写程序使用Hough变换处理图像,进行线检测;

(3)编写程序使用阈值处理方法进行图像分割,根据实验结果分析效果; (4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。 2.实验环境(软件条件) Windws2000/XP MATLAB 7.0 3.实验方法 对256级灰度的数字图像camera.bmp(如图4.1所示)和car.bmp(如图4.2所示)进行如下处理: (1)对图像camera.bmp进行Hough变换进行线检测,显示处理前、后图像: 思考如何利用Hough变换进行圆检测; (2)对图像car.bmp分别利用不同的阈值处理方法进行图像中汽车及车牌的分割,显示处理前、后图像;思考不同的阈值处理算法对分割效果的影响? 4.实验分析 实验原理 Hough变换是最常用的直线提取方法,它的基本思想是:将直线上每一个数据点变换为参数平面中的一条直线或曲线,利用共线的数据点对应的参数曲线相交于参数空间中一点的关系,使直线的提取问题转化为计数问题。Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。 思考: Hough变换对圆的检测: Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。 圆的方程为:222 ()() x a y b r -+-=,通过Hough变换,将图像空间(,) x y对应到参数空间(,,) a b r。 第一题结果图 图4.1 实验图像camera.bmp 图4.2 实验图像car.bmp

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

实验三图像分割与边缘检测

数字图像处理实验报告 学生姓名王真颖 学生学号L0902150101 指导教师梁毅雄 专业班级计算机科学与技术1501 完成日期2017年11月06日

计算机科学与技术系信息科学与工程学院

目录 实验一.................................................................................................. 错误!未定义书签。 一、实验目的.................................................................................................... 错误!未定义书签。 二、实验基本原理 ........................................................................................... 错误!未定义书签。 三、实验内容与要求....................................................................................... 错误!未定义书签。 四、实验结果与分析....................................................................................... 错误!未定义书签。实验总结............................................................................................... 错误!未定义书签。参考资料.. (3) 实验一图像分割与边缘检测 一.实验目的 1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法;

图像分割实验报告汇总

图像分割实验报告 一、实验目的 1. 掌握图像分割的基本思想,了解其分割技术及其计算策略; 2. 学会从图像处理到分析的关键步骤,掌握图像分割过程; 3. 了解图像分割的意义,进一步加深对图像分析和理解; 4. 掌握基本分割方法:迭代分割和OTSU图像分割,并编程实现。 二、实验原理 (一)迭代阈值分割选取的基本思路是:首先根据图像中物体的灰度分布情况,选取一个近似阈值作为初始阈值,一个较好的方法就是将图像的灰度均值作为初始阈值,然后通过分割图像和修改阈值的迭代过程获得认可的最佳阈值。迭代式阈值选取过程可描述如下: 1. 计算初始化阈值g0=(g max+g min) ; 2 2. 根据g0,将图像分为两部分,分别计算灰度值期望,取其平均值为g1; 3. 如此反复迭代,当|g n-g n?1|足够小时,停止迭代,取T=g n即为最终阈值。 (二)OTSU图像分割(最大类间方差法)是一种自适应的阈值确定的方法,是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别

越大, 当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。以最佳门限将图像灰度直方图分割成两部分,使两部分类间方差取最大值,即分离性最大。OTSU阈值选取过程可描述如下: 1.记T为目标与背景的分割阈值,目标点数占图像比例为w1,平均灰度为u1;背景点数占图像比例为w2,平均灰度为u1; 2.图像的总平均灰度为:u=w1*u1+w2*u2; 3.目标和背景图象的方差:g=w1*(u1-u)*(u1-u)+w1*(u2-u)*(u2-u)=w1*w2*(u1-u2)*(u1-u2); 4.当方差g最大时,可以认为此时前景和背景差异最大,此时的灰度T是最佳阈值。 二、实验内容 1. 利用C++编程实现迭代阈值图像分割算法; 2. 利用C++编程实现OTSU动态阈值图像分割算法。 三、实验框图

实验二 图像分割与边缘检测

实验二图像分割与边缘检测 一.实验目的及要求 1.利用MATLAB研究图像分割与边缘检测的常用算法原理; 2.掌握MATLAB图像域值分割与边缘检测函数的使用方法; 3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。 二、实验内容 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 1.图像阈值分割 clear all, close all; I = imread('rice.tif'); figure (1),imshow(I) figure(2); imhist(I) T=120/255; Ibw1 = im2bw(I,T); %选择阈值T=120/255对图像二值化; figure(3); subplot(1,2,1), imshow(Ibw1); T=graythresh(I); %采用Otsu方法计算最优阈值T对图像二值化; L = uint8(T*255) Ibw2 = im2bw(I,T); subplot(1,2,2), imshow(Ibw2); help im2bw; help graythresh; (令T取不同值,重做上述试验,观察试验结果) 以下是程序执行结果: Comand窗口: L = 125 IM2BW Convert image to binary image by thresholding. IM2BW produces binary images from indexed, intensity, or RGB images. To do this, it converts the input image to grayscale format (if it is not already an intensity image), and then converts this grayscale image to binary by thresholding. The output binary image BW has values of 0 (black) for all pixels

数字图像处理实验报告——图像分割实验

数字图像处理实验报告——图像分割实验课程名称数字图像处理导论专业班级 _______________ 姓名 _______________ 学号 _______________ 电气与信息学院 和谐勤奋求是创新 实验题目图像分割实验 DSP室&信号室实验室实验时间实验类别设计同组人数 2 成绩指导教师签字: 一(实验目的 1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法; 4. 掌握用阈值法进行图像分割的基本方法。 二(实验内容 1. 分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之 处; 2. 设计一个检测图1中边缘的程序,要求结果类似图2,并附原理说明。 3. 任选一种阈值法进行图像分割. 图1 图2

三(实验具体实现 1. 分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之 处; I=imread('mri.tif'); imshow(I) BW1=edge(I,'roberts'); figure ,imshow(BW1),title('用Roberts算子') BW2=edge(I,'sobel'); figure,imshow(BW2),title('用Sobel算子 ') BW3=edge(I,'log'); figure,imshow(BW3),title('用拉普拉斯高斯算子') 1

比较提取边缘的效果可以看出,sober算子是一种微分算子,对边缘的定位较精确,但是会漏去一些边缘细节。而Laplacian-Gaussian算子是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘的细节比较丰富。通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。 2. 设计一个检测图1中边缘的程序,要求结果类似图2,并附原理说明。 i=imread('m83.tif');

图像分割和图像边缘检测

图像分割和图像边缘检测 边缘检测和图像分割的联系:边缘检测是通过图像的梯度变化将图像中梯度变化明显的地方检测出来,针对的是边缘信息。图像分割是将目标分割出来,针对的是目标对象,边缘检测是空间域图像分割的一种方法,属于包含关系 边缘检测后的图像是二值图像,对二值图像可以运用形态学操作来分割目标,所以边缘检测是图像分割的一个前提。但分割不一定非要用边缘检测。 图像分割:概念: 图像分割是将图像划分成若干个互不相交的小区域的过程,所谓小区域是某种意义下具有共同属性的像素的连通集合。 从集合的观点看:它应该是具有如下性质的一种点集,集合R代表整个区域,对R的分割可看作将R分成N个满足以下五个条件的非空子集R1,R2,,RN: 目的: 无论是图像处理、分析、理解与识别,其基础工作一般都建立在图像分割的基础上; 将图像中有意义的特征或者应用所需要的特征信息提取出来; 图像分割的最终结果是将图像分解成一些具有某种特征的单元,称为图像的基元; 相对于整幅图像来说,这种图像基元更容易被快速处理。 图像分割原理图像分割的研究多年来一直受到人们的高度重视,至今提出了各种类型的分割算法。Pal把图像分割算法分成了6类:阈值分割,像素分割、深度图像分割、彩色图像分割,边缘检测和基于模糊集的方法。但是,该方法中,各个类别的内容是有重叠的。为了涵盖不断涌现的新方法,有的研究者将图像分割算法分为以下六类:并行边界分割技术、串行边界分割技术、并行区域分割技术、串行区域分割技术、结合特定理论工具的分割技术和特殊图像分割技术。 图像分割的特征:分割出来的各区域对某种性质例如灰度,纹理而言具有相似性,区域内部是连通的的且没有过多小孔。 区域边界是明确的

实验五图像分割及目标检测

电子科技大学 实 验 报 告 学生姓名: 学号: 指导教师:彭真明 日期: 2014 年 5 月 20 日 一、实验名称:图像分割及目标检测 二、实验目的:

1、了解图像边缘检测及图像区域分割的目的、意义和手段。 2、熟悉各种经典的边缘检测算子、图像分割方法及其基本原理。 3、熟悉各种图像特征表示与描述的方法及基本原理。 4、熟练掌握利用matlab 工具实现各种边缘检测的代码实现。 5、熟练掌握利用matlab 工具实现基本阈值分割的代码实现。 6、通过编程和仿真实验,进一步理解图像边缘检测、图像分割及其在目标检测、目标识别及跟踪测量应用中的重要性。 三、实验原理及步骤: 1、利用Soble算子进行图像的边缘检测 (1)原理与步骤 数字图像的边缘一般利用一阶/二阶差分算子进行检测。常用的差分算子包括:Roberts 算子(交叉对角算子),Prewitt 算子(一阶),Sobel 算子(一阶),Laplacian 算子(二阶),LoG 算子(二阶)及Canny 边缘检测算法等。其中,Soble 算子为常见的一类梯度算子(一阶梯度算子)。 其x, y 方向的梯度算子分别为: 一幅数字图像I(如图1)与Sx 和Sy 分别做卷积运算后(可采用多种方式,如conv2,filter2 及imfilter),可以求得x,y 两个方向的梯度图像Dx,Dy,然后,可以计算得到原图像的梯度幅度,即 或:

(2)进一步执行梯度图像D 的二值化处理(建议采用Otsu 阈值,也可考虑其他阈值分割),检测图像的二值化边缘。 (3)对于与步骤同样的输入图像I,利用matlab 工具的edge(I,’soble’)函数进行处理。试比较处理结果与步骤(2)的得到的结果的差异,并分析存在差异的原因。 (4)画出原图像、原图像的Dx, Dy 图,幅度图(D)及最后的二值化边缘检测结果图。 2、数字图像中目标区域的形心计算 (1)按如下公式计算原图像(图 2)的质心。 (2)对图 2 中的黑色形状目标进行阈值分割,得到二值化的图像; 图2 原始图像(240*240) (3)计算目标形状的面积(以像素表示); (4)计算图中黑色形状目标的形心位置,并在原图上进行位置标记(可用红色小圆圈)。 其中,M,N 为图像尺寸。x,y 为像素图像平面上的坐标。 (5)画出原图像、原图上叠加质心标记图;分割后的二值化图及分割图上叠加形心标记图。 四、程序框图

数字图像处理实验报告——图像分割实验

实验报告 课程名称数字图像处理导论 专业班级 _______________ 姓名 _______________ 学号 _______________ 电气与信息学院 和谐勤奋求是创新

实验题目图像分割实验 实验室 DSP室&信号室实验时间 实验类别设计同组人数2 成绩指导教师签字: 一.实验目的 1.理解图像分割的基本概念; 2.理解图像边缘提取的基本概念; 3.掌握进行边缘提取的基本方法; 4.掌握用阈值法进行图像分割的基本方法。 二.实验内容 1.分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之 处; 2.设计一个检测图1中边缘的程序,要求结果类似图2,并附原理说明。 3.任选一种阈值法进行图像分割. 图1 图2 三.实验具体实现 1.分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的不同之 处; I=imread('mri.tif'); imshow(I) BW1=edge(I,'roberts'); figure ,imshow(BW1),title('用Roberts算子') BW2=edge(I,'sobel'); figure,imshow(BW2),title('用Sobel算子 ') BW3=edge(I,'log'); figure,imshow(BW3),title('用拉普拉斯高斯算子')

比较提取边缘的效果可以看出,sober算子是一种微分算子,对边缘的定位较精确,但是会漏去一些边缘细节。而Laplacian-Gaussian算子是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘的细节比较丰富。通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。 2.设计一个检测图1中边缘的程序,要求结果类似图2,并附原理说明。 i=imread('m83.tif'); subplot(1,2,1); imhist(i); title('原始图像直方图'); thread=130/255; subplot(1,2,2);

图像处理边缘提取与分割实验报告附源码

边缘提取与图像分割 理论、算法、源码与实例 1)理论 一、边缘检测的基本方法: 各种差分算子,主要有: 差分边缘检测方法 Roberts梯度模算子 前两种对垂直,水平,对角检测好。 Prewitt算子,Robinson算子(算八个方向的梯度最大值) Sobel算子(利用上下左右加权,可平滑噪声); Kirsch算子 Rosenfeld算子 Laplace算子(二阶导数算子,一般不用于检测,用于之后判别暗区与明区。) LOG算子,(高斯平滑后求导提取边界。) 主要思路用高斯函数对图像平滑滤波,然后再对图像进行拉普拉斯运算,算得的值等于零的点认为是边界点。 该算法高斯函数方差取值很重要,过大会导至精度不高。还容易产生虚假边界。但可以用一些准备去除虚假边界。对于灰度渐变图的效果也不太好。但大部份图片边缘提取效果还好。Canny边界检测算子 二、拟合曲面求导提取边界。 主要思路为在点的邻域各点拟合一个曲面,由曲面的求导代替离散点求差分,这种方法对于噪声比较不敏感。 三、统计判决法提取边界 以误判概率最小化设置门限,对边界检测算子作用后的每个像点判别/。统计判决法依赖于先验知识。 四、分裂—合并算法 按一定的均一化标准,将图片分成子图。合并满足均一性准则的子图。

五、跟踪技术 1)区域跟踪,基于区域的图像分割方法。 应用于直接提取区域。检测满足跟踪准则的点,找到这样的点,检测其所有邻点,把满足跟踪准则的任合邻点合并再重复。直到没有邻点满足检测准则。 2)曲线跟踪,基于边界的图像分割方法。 对整幅图扫描,对所有“现在点”的邻点检测,周围没有满足跟踪条件的点时,返回到上一个最近的分支处,取出另一个满足跟踪原则的现在点。重复根踪。 六、模型化与统计检验法检测边界 开始步骤为对图像划分成多块子图,每块子图进行曲面拟合。并应用误差的分析,构造F 统计量,判断此区域是否有边界的存在。 七、匹配检测技术 基于区域的一种分割方法。 1)归一化互相关测度匹配 类似于求相关系数。但是这种方法实用时不太理想,因为匹配模板的尺寸跟图上的尺寸差异,造成操作很难。 2)匹配滤波器 基于最大信噪比准则。 用一个滤波器对图像子图作卷积,当滤波器为子图旋转180度后的K倍时,功能与相关系数一样。此时称为匹配滤波器。 3)线检测 用匹配滤波器可以设计一些线检测器。对直线检测效果好。 八、利用模式识别某些技术进行图像分割 对每个像素提取特征,提取一个n维特征,如果特效果好,那么在特征空间里,像素点会表现出类聚。一般来说,特征是区域性的,一般是征对邻域或图像的各个子图提取特征。通常特征包含,灰度,空间关系(梯度,像素小块邻域平均灰度,纹理参数,颜色)等。 九、基于活动轮廓模型的边界提取算法 不同于经典的基于求导自下而上过程,而是一种基于总体和局部的自上而下和自下而上的处理过程。借助一些物理概念构造一个描述轮廓状态指标,将图像灰度分布,灰度梯度及轮廓形状约束等信息作为“外能”和“内能”构造活运轮廓的能量函数。将一个初始轮廓放在感兴趣的图像区域中,轮廓在外力和内力作用下变形,外力推动活动轮廓向着物体的边缘运动,而内力要使活动轮廓趋于光滑和保持其拓朴性。在达到平衡时,对应的能量最小,此时的活动轮廓即为要检测的边界。 十、基于视觉特性的边界提取方法 ——线性加权函数(LWF)在边界检测中的应用 视觉系统对亮度对比度的感知可以转化为数学中的微分算子的特征值问题,视觉的感觉响应类似于高斯函数与其拉普拉斯变换之和。基于生理学和数学导出的线性加权函数(LWF)是高斯函数与它的二阶导数的线性组合. 视觉处理过程是图像与一系列不同方差的高斯函数及其二阶导数的卷积过程。

详细的图像分割之边缘检测实验报告

边缘检测实验报告 一、实验目的 通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。 二、实验原理: 图像处理有两大类目的:1.改善像质(增强、恢复);2.图像分析:对图像内容作出描述;其一般的图像处理过程如下: 图像分割的算法有: (1)阈值分割原理: (,)(,)(,)E B L f x y T g x y L f x y T ≥?=?

(2)边缘检测: 梯度对应一阶导数,对于一个连续图像函数f(x,y): 梯度矢量定义: 梯度的幅度: 梯度的方向: a) Roberts 算子 b) Sobel 算子 Roberts 算子 [ ] T T y x y f x f G G y x f ?? ????????==?),(122) ()),((),(y x G G y x f mag y x f +=?=?) arctan(),(x y G y x =φ()()()[]()()[] { } 2 122 1,,11,1,,+-++++-=j i f j i f j i f j i f j i g

c) Prewitt 算子 d) Kirsch 算子 由K 0~K 7八个方向模板组成,将K0~K7的模板算法分别与图像中的3×3区域乘,选最大一个值,作为中央像素的边缘强度 (3)区域分割 1 区域生长法 算法描述 先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相似性质的像素合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。 2 分裂合并法 实际中常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求,即分裂合并法.一致性测度可以选择基于灰度统计特征(如同质区域中的方差),假设阈值为T ,则算法步骤为: ① 对于任一Ri ,如果 ,则将其分裂成互不重叠的四等分; ② 对相邻区域Ri 和Rj ,如果 ,则将二者合并; ③ 如果进一步的分裂或合并都不可能了,则终止算法。 (4)Hough 变换 Hough 变换是一种检测、定位直线和解析曲线的有效方法。它是把二值图变换到Hough 参数空间,在参数空间用极值点的检测来完成目标的检测。下面以直线检测为例,说明 } ,,,m ax {),(10T g g g y x g =∑∑ -=-=++=111 1) ,(),(),(k l i i l y k x f l k K y x g T R V i >)(T R R V j i ≤)(

相关主题
文本预览
相关文档 最新文档