matlab提取图片像素点并重新上色
时间: 2023-11-28 22:04:47 浏览: 93
可以使用Matlab中的`imread`函数读取图片,获取图像的宽度和高度,然后使用`imwrite`函数重新生成一张图片。
以下是一个简单的示例代码,演示如何提取图片像素点并重新上色:
```matlab
% 读取原始图片
img = imread('example.png');
% 获取图像的宽度和高度
[width, height, ~] = size(img);
% 创建一个新的空白的RGB图片
new_img = zeros(width, height, 3, 'uint8');
% 循环遍历原始图片的每个像素点
for i = 1:width
for j = 1:height
% 获取当前像素点的RGB值
r = img(i, j, 1);
g = img(i, j, 2);
b = img(i, j, 3);
% 在新图片上设置新的RGB值
new_img(i, j, 1) = b; % 将蓝色通道的值设置为原始图片的红色通道的值
new_img(i, j, 2) = g; % 将绿色通道的值设置为原始图片的绿色通道的值
new_img(i, j, 3) = r; % 将红色通道的值设置为原始图片的蓝色通道的值
end
end
% 保存新图片
imwrite(new_img, 'new_example.png');
```
在这个示例中,我们将原始图片中的红色通道设置为新图片中的蓝色通道,绿色通道保持不变,蓝色通道设置为原始图片中的红色通道。你可以根据自己的需求和喜好修改代码以实现不同的颜色组合。
阅读全文