将黑色矩形外面的全部变为黑色MATLAB
时间: 2024-03-16 07:42:11 浏览: 23
假设您的矩形是已知的,您可以使用以下步骤来将矩形外的像素值设置为黑色:
1. 获取原始图像的大小,创建一个与其大小相同的全黑图像。
```matlab
img = imread('image.png'); % 读取图像
[height, width, ~] = size(img); % 获取图像大小
output = zeros(height, width, 'uint8'); % 创建全黑图像
```
2. 创建一个矩形掩膜,使矩形内的像素值为白色,矩形外的像素值为黑色。
```matlab
x = 100; % 矩形左上角 X 坐标
y = 100; % 矩形左上角 Y 坐标
w = 200; % 矩形宽度
h = 100; % 矩形高度
rect_mask = false(height, width); % 创建全黑掩膜
rect_mask(y:y+h-1, x:x+w-1) = true; % 矩形内的像素值为真
```
3. 将原始图像中在掩膜内的像素赋值给输出图像,矩形外的像素赋值为黑色。
```matlab
output(rect_mask) = img(rect_mask); % 赋值矩形内的像素
output(~rect_mask) = 0; % 赋值矩形外的像素为黑色
```
完整的代码如下:
```matlab
img = imread('image.png'); % 读取图像
[height, width, ~] = size(img); % 获取图像大小
output = zeros(height, width, 'uint8'); % 创建全黑图像
x = 100; % 矩形左上角 X 坐标
y = 100; % 矩形左上角 Y 坐标
w = 200; % 矩形宽度
h = 100; % 矩形高度
rect_mask = false(height, width); % 创建全黑掩膜
rect_mask(y:y+h-1, x:x+w-1) = true; % 矩形内的像素值为真
output(rect_mask) = img(rect_mask); % 赋值矩形内的像素
output(~rect_mask) = 0; % 赋值矩形外的像素为黑色
imshow(output); % 显示输出图像
```
这个示例代码会读取名为`image.png`的图像,并创建一个与其大小相同的全黑图像。然后,它会创建一个矩形掩膜,使矩形内的像素值为真,矩形外的像素值为假。最后,它会将原始图像中在掩膜内的像素赋值给输出图像,矩形外的像素赋值为黑色,并显示输出图像。