使用matlab除去图片中的某种颜色

学数字图像处理的课程时做过类似的实验,想重新利用一下这个程序,为了便捷快速,把大体思路和AI说了一下,让它来完成,经过几次报错修改后成品如下:
原图:
在这里插入图片描述
修改后的:
在这里插入图片描述
大体思路就是使用鼠标点选想要删除的颜色,程序得到数值后将整个图片中该颜色范围相近的替换为白色,需要告诉AI使用RGB三色通道。
code:

% 读取图像
img = imread('remove.png');

% 确保图像是RGB格式
if size(img, 3) ~= 3
    error('此脚本仅适用于RGB彩色图像,请提供RGB图像。');
end

% 显示图像
hFig = figure;
hAx = axes('Parent', hFig);
hImg = imshow(img, 'Parent', hAx);

% 获取用户点击位置的颜色
[picked_color_x, picked_color_y] = ginput(1); % 用户点击获取一个点
picked_color = impixel(img, picked_color_x, picked_color_y); % 根据坐标获取颜色值
picked_color = picked_color(1,:); % impixel返回的是行向量,确保picked_color是一维数组

% 定义容差范围,这里以RGB每个通道50为例
tolerance = 50;

% 创建逻辑索引,找出所有与选定颜色相近的像素
logical_img = all(abs(double(img) - reshape(picked_color, [1, 1, 3])) <= tolerance, 3);

% 将选定颜色附近的像素设置为白色
img_modified = img;
[rows, cols] = find(logical_img); % 找到所有满足条件的位置
for k = 1:length(rows)
    img_modified(rows(k), cols(k), :) = [255, 255, 255]; % 设置为白色
end

% 显示修改后的图像
figure;
imshow(img_modified);

% 如果需要保存修改后的图像,请取消下面注释行
% imwrite(img_modified, 'modified_image_file.jpg');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TinyLight1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值