如何解决Matlab-如何对具有多个阈值的灰度图像进行二值化?
我正在尝试将灰度图像转换为具有两个阈值的二进制图像:
- img =灰度图像
- b =输出二进制图像
- 如果(img> t1)或(img
- 否则b = 0
t1 = 200;
t2 = 100;
src = imread('an rgb image');
img = reg2gray(src);
b1 = imbinarize(img,t1);
b2 = imbinarize(img,-t2);
b = imadd(b1,b2);
,但是此代码无效。是否可以同时设置多个阈值?
解决方法
使用逻辑矩阵。
b=(img>t1) | (img<t2);
,
可以将条件语句应用于数组。条件为真时,将初始化数组的值设置为1,并将数组的其余单元格设置为0。
RGB_Image = imread("RGB_Image.png");
Grayscale_Image = rgb2gray(RGB_Image);
imshow(Grayscale_Image);
Threshold_1 = 220;
Threshold_2 = 100;
Binary_Image = ((Grayscale_Image > Threshold_1) | (Grayscale_Image < Threshold_2));
subplot(1,2,1); imshow(RGB_Image);
title("RGB Image");
subplot(1,2); imshow(Binary_Image);
title("Binary Image");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。