什么是网站单页,成人专业技能培训机构,深圳企业网站建设公司哪家好,建筑设计单位一、函数概述 众所周知#xff0c;im2bw函数可以将灰度图像转换为二值图像。但MATLAB中还有一个imbinarize函数可以将灰度图像转换为二值图像。imbinarize函数是MATLAB图像处理工具箱中用于将灰度图像或体数据二值化的工具。它可以通过全局或自适应阈值方法将灰度图像转换为二…一、函数概述 众所周知im2bw函数可以将灰度图像转换为二值图像。但MATLAB中还有一个imbinarize函数可以将灰度图像转换为二值图像。imbinarize函数是MATLAB图像处理工具箱中用于将灰度图像或体数据二值化的工具。它可以通过全局或自适应阈值方法将灰度图像转换为二值图像便于后续的图像分析和处理。
imbinarize的基本用法
BW imbinarize(I)
BW imbinarize(I,method)
BW imbinarize(I,T)
BW imbinarize(I,adaptive,Name,Value)
I输入的二维灰度图像或三维灰度图像体。数据类型可以是single、double、int8、int16、int32、uint8、uint16、uint32。如果输入的是RGB图像imbinarize会将其视为三维体灰度图像而不会单独对每个通道进行二值化。method指定二值化图像的方法可以是global默认或adaptive。因此BW imbinarize(I) 等价于BWim2bw(I,graythresh(I))T阈值可以是指定为标量亮度值的全局图像阈值也可以是指定为亮度值矩阵的局部自适应阈值。阈值应在范围[0, 1]内。Name,Value用于控制自适应阈值的参数对组如Sensitivity敏感度因子和ForegroundPolarity前景极性。BW输出的二值图像是一个与输入图像I大小相同的逻辑矩阵或逻辑数组。
二、参数详解
1.全局阈值方法
1.1默认情况下imbinarize使用Otsu方法计算全局阈值。Otsu方法通过最小化阈值化后的黑白像素的类内方差来选择阈值。
1.2可以使用graythresh或otsuthresh函数预先计算全局阈值然后传递给imbinarize函数。
2.自适应阈值方法
2.1自适应阈值方法根据局部像素统计进行阈值化。imbinarize使用像素邻域的局部均值强度计算每个像素的阈值。
2.2可以使用Sensitivity参数调整自适应阈值的敏感度因子。默认值为0.5取值范围为[0, 1]。敏感度越高越多的像素会被阈值化为前景。
2.3可以使用ForegroundPolarity参数指定前景极性。默认值为bright前景比背景亮可选值为dark前景比背景暗。 三、应用示例程序源代码及主要运行结果 请使用imbinarize函数和其他有关图像处理函数对coins.png和rice.png函数进行背景分割。
1.程序源代码
clear all;
close all;
clc;
% 读取灰度图像
I imread(coins.png);
% 使用全局阈值对图像进行二值化
BW imbinarize(I);%等价于BWim2bw(I,graythresh(I));
% 显示原始图像和二值图像
figure;
imshowpair(I, BW, montage);
title(原始图像和imbinarize处理后的图像);
BWfillimfill(BW,holes);
figure,imshow(BWfill);%孔洞填充
I2imread(rice.png);
BW2imbinarize(I2);%使用全局阈值分割
BW3imbinarize(I2,adaptive);%使用局部自适应阈值分割
figure,
subplot(1,3,1),imshow(I2),title(原始图像);
subplot(1,3,2),imshow(BW2),title(全局阈值分割后图像); %对大米分割效果欠佳
subplot(1,3,3),imshow(BW3),title(局部自适应阈值分割后图像); %对大米分割效果较好
RiceBWbwareaopen(BW3,40);
figure,imshow(RiceBW);
主要运行结果 四、结果与讨论 由上可知巧妙使用imbinarize函数可以较好地实现图像的快速分割并减少代码行数。 如果大家觉得本文对大家的学习和科研有所帮助别忘了点赞和关注欢迎转发谢谢大家