Matlab数字图像处理基础【9】
来源:互联网 发布:云服务器限制端口 编辑:程序博客网 时间:2024/04/30 22:49
第六章 图像分割
实例:灰度图像的阈值分割
clc;clear;%读入图像A = imread('shape.jpg');figure(1),subplot(2,2,1),imshow(A),title('原图像');%获取灰度直方图,根据直方图人工选取阈值h = imhist(A);%h = imhist(A) / numel(A);h1 = h(1:10:256);horz = 1:10:256;figure(2),bar(horz, h1),axis([0 255 0 15000]),title('直方图');%人工设定阈值进行图像分割thr1 = 100;[m, n] = size(A);for i = 1:m for j = 1:n if A(i,j) < thr1 A1(i,j) = 0; else A1(i,j) = 1; end endendfigure(1),subplot(2,2,2),imshow(A1),title('人工设定阈值');%使用迭代法选取阈值进行图像分割%计算阈值初始值thr2 = 0.5 * (double(min(A(:))) + double(max(A(:))));%设定循环终止条件done = false;%循环计算阈值和分割图像while ~done %获取二值分割结果 A2 = A >= thr2; %计算新阈值 tnext = 0.5 * (mean(A(A2)) + mean(A(~A2))); %判断循环是否终止 done = abs(thr2 - tnext) < 0.5; %阈值更新 thr2 = tnext;endfigure(1),subplot(2,2,3),imshow(A2),title('迭代选取阈值');%使用Otsu方法进行阈值选取和图像分割%使用Otsu方法获取阈值thr3 = graythresh(A) * 255;%使用获得的阈值进行阈值分割[m, n] = size(A);for i = 1:m for j = 1:n if A(i,j) < thr3 A3(i,j) = 0; else A3(i,j) = 1; end endendfigure(1),subplot(2,2,4),imshow(A3),title('Otsu阈值选取');
实验结果:
0 0
- Matlab数字图像处理基础【9】
- Matlab数字图像处理基础
- 数字图像处理matlab基础操作
- Matlab数字图像处理基础【1】
- Matlab数字图像处理基础【2】
- Matlab数字图像处理基础【3】
- Matlab数字图像处理基础【4】
- Matlab数字图像处理基础【5】
- Matlab数字图像处理基础【8】
- Matlab数字图像处理基础【10】
- Matlab数字图像处理基础【11】
- Matlab数字图像处理基础【12】
- Matlab数字图像处理的基础
- matlab 最基础的数字图像处理
- matlab 最基础的数字图像处理 .
- Matlab数字图像处理基础:图像采样
- 数字图像处理MATLAB基础中的一些新发现
- matlab数字图像/视频处理基础 第一篇
- Unity3D的LightProbe动态光探头用法
- git的常用命令(一)
- js前端处理json对象,或者json的字符串
- Java学习笔记_003_流程控制
- Maven加载ojdbc14-10.2.0.4.0.jar文件
- Matlab数字图像处理基础【9】
- 如何面试测试人员
- 正则表达式前端使用手册
- MTK SmartPhone Record-(2)
- 获得数组中最大值和最小值并它们的位置
- kali渗透测试(一)
- Selenium的封装与重用
- Android7.0打开本地文件失败 android.os.FileUriExposedException
- 将博客搬至CSDN