使用这段代码,为什么我想要得到的目标是黑色:% 读取图像 img = imread('瑕疵图像1.png'); % 将图像转换为灰度图像 gray_img = rgb2gray(img); % 设定阈值,一般可以通过试错法来确定最佳阈值 threshold = 107; % 对图像进行二值化处理,将灰度值大于阈值的像素点设为白色(255), 其余像素点设为黑色(0) binary_img = gray_img > threshold; % 对二值化后的图像进行形态学操作,去除噪声 se = strel('disk', 2); binary_img = imopen(binary_img, se); % 显示结果 figure; subplot(1, 2, 1); imshow(img); title('原图'); subplot(1, 2, 2); imshow(binary_img); title('提取结果');
时间: 2024-02-20 13:00:10 浏览: 67
Matlab的信号与图像处理学习示例代码,读取图像、进行图像处理和显示处理结果.txt
如果想要得到的目标是黑色,可以将二值化处理的选项反转一下,即将大于阈值的像素点设为黑色(0),其余像素点设为白色(255)。修改后的代码如下:
```
% 读取图像
img = imread('瑕疵图像1.png');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 设定阈值,一般可以通过试错法来确定最佳阈值
threshold = 107;
% 对图像进行二值化处理,将灰度值大于阈值的像素点设为黑色(0),其余像素点设为白色(255)
binary_img = gray_img <= threshold;
% 对二值化后的图像进行形态学操作,去除噪声
se = strel('disk', 2);
binary_img = imopen(binary_img, se);
% 显示结果
figure;
subplot(1, 2, 1);
imshow(img);
title('原图');
subplot(1, 2, 2);
imshow(binary_img);
title('提取结果');
```
这样修改后,提取结果中,黑色像素点表示目标区域,白色像素点表示背景区域。
阅读全文