用matlab实现 保留多个以坐标像素为1为中心的17*17大小的原始图像结果,在一副图像中表示出来
时间: 2024-03-03 18:52:57 浏览: 25
您可以按照以下步骤使用MATLAB实现保留多个以坐标像素为1为中心的17*17大小的原始图像结果,在一副图像中表示出来:
1. 读取原始图像
```matlab
img = imread('your_image.png'); % 替换为您的图像文件路径
```
2. 找到坐标像素为1的位置
```matlab
[row, col] = find(img == 1);
num_points = length(row); % 记录坐标像素为1的位置个数
```
3. 创建一张与原始图像大小相同的图像,将坐标像素为1的位置处的像素设为原始像素值,其余像素设为0
```matlab
img_out = zeros(size(img));
for i = 1:num_points
img_out(row(i), col(i)) = img(row(i), col(i));
end
```
4. 在原始图像中加入红色边框以标记截取的区域
```matlab
for i = 1:num_points
img(row(i)-8:row(i)+8, col(i)-8, 1) = 255;
img(row(i)-8:row(i)+8, col(i)+8, 1) = 255;
img(row(i)-8, col(i)-8:col(i)+8, 1) = 255;
img(row(i)+8, col(i)-8:col(i)+8, 1) = 255;
end
```
5. 将原始图像和标记区域的图像叠加显示
```matlab
imshow(img+repmat(img_out, [1, 1, 3]));
```
注意:以上代码可以处理多个坐标像素为1的位置,但是如果位置过多,会在图像中导致较为混乱的标记,建议不要超过5个。