matlab实现抠图换背景代码
时间: 2023-10-26 10:24:07 浏览: 53
以下是使用Matlab实现抠图换背景的代码:
```matlab
% 加载图片
img = imread('input_image.jpg');
% 显示原始图片
figure;
imshow(img);
% 使用imrect函数手动框选要抠图的区域
rect = imrect;
pos = getPosition(rect);
% 使用createMask函数创建掩膜
mask = createMask(rect, img);
% 显示掩膜
figure;
imshow(mask);
% 将掩膜应用到原始图像中
maskedImg = bsxfun(@times, img, cast(mask, 'like', img));
% 显示抠图后的图片
figure;
imshow(maskedImg);
% 加载背景图片
bg = imread('background_image.jpg');
% 将背景图片与抠图后的图片合并
combinedImg = bsxfun(@times, cast(~mask, 'like', img), bg) + maskedImg;
% 显示合并后的图片
figure;
imshow(combinedImg);
% 保存结果
imwrite(combinedImg, 'output_image.jpg');
```
代码中使用了`imread`函数加载图片,`imrect`函数手动框选要抠图的区域,`createMask`函数创建掩膜,`bsxfun`函数将掩膜应用到原始图像中,以及将背景图片与抠图后的图片合并。最后使用`imwrite`函数保存结果。