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图像阈值分割用的语言、如何对图像进行阈值处理、基于阈值的图像分割方法有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)