matlab图像阈值分割用的语言

matlab图像阈值分割用的语言,第1张

matlab图像阈值分割用的语言基于阈值法实现图像分割含Matlab源码。对于数字图像,我们往往会对他们中的某一部分感兴趣,这些部分我们称为前景或者目标, 其余部分称为背景。为了识别和分析图像中的目标,我们需要把他们从图像中提取出来,在此基础上对图像进行进一步的处理和应用,图像分割就是为了实现这个过程。

你是用什么软件对图像进行阈值处理?如果你用的是MATLAB,则可以先把真彩图转化成灰度图,再用graythresh得到大津法的阈值,最后将此阈值代入二值分割。例子如下:

I=imread('真彩图');    %读取真彩图(原图)

J=rgb2gray(I);             %将原图转化成灰度图

level=graythresh(J);            %计算阈值

BW=im2bw(J,level);           %代入阈值进行二值分割

主要是三类

1) 基于点的全局阈值方法

2) 基于区域的全局阈值方法

3) 局部阈值方法和多阈值方法

1)基于点的全局阈值方法

p-分位数法

1962年Doyle提出的p-分位数法是最古老的一种阈值选取方法

迭代方法选取阈值

初始阈值选取为图像的平均灰度T0,然后用T0将图像的象素点分作两部分,计算两部分各自的平均灰度,小于T0的部分为TA,大于T0的部分为TB,将T1 作为新的全局阈值代替T0,重复以上过程,如此迭代,直至TK 收敛

直方图凹面分析法

最大类间方差法

熵方法

最小误差阈值

矩量保持法

模糊集方法

2) 基于区域的全局阈值方法

二维熵阈值分割方法

简单统计法

直方图变化法

松弛法

3) 局部阈值方法和多阈值方法

局部阈值(动态阈值)

阈值插值法

水线阈值算法

多阈值法 基于小波的多域值方法 基于边界点的递归多域值方法 均衡对比度递归多域值方法

a=imread('YuChubmp');

如果读入的是彩色图,需要用a=rgb2gray(a);转换为灰度图

加了这句我运行了下,程序没出现错误也能出图

另外matlab图像处理工具箱中用level = graythresh(I)函数去阈值,其方法与你的方法一致,都是Otsu方法

补充:

你看看a读入时数据的大小,要是3维的话就是RGB图像了,需要转一下

另外是程序错误还是结果不对?

matlab太搞了,算子都是编好的,你直接调用。BW = edge(I,'canny'); canny算子直接调用。

下面是网上找到的canny算子边缘检测:

I = imread('lunnajpg');

I=rgb2gray(I);

BW = edge(I,'canny');

% 以自动阈值选择法对图像进行Canny算子检测

[BW,thresh] = edge(I,'canny');

% 返回当前Canny算子边缘检测的阈值

disp('Canny算子自动选择的阈值为:')

disp(thresh)

subplot(121),imshow(BW);

title('自动阈值的Canny算子边缘检测')

BW = edge(I,'Canny',[02 05]);

% 以阈值为[01 05]对图像进行Canny算子检测

subplot(122),imshow(BW);

title('阈值为[01 05]的Canny算子边缘检测')

以上就是关于matlab图像阈值分割用的语言全部的内容,包括:matlab图像阈值分割用的语言、如何对图像进行阈值处理、基于阈值的图像分割方法有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9835198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存