matlab gui中怎样对彩色图片进行翻转处理?

发布网友 发布时间:2022-04-24 14:04

我来回答

2个回答

热心网友 时间:2023-04-22 21:04

其实问题不在于彩图或灰度图,而在于图片是真彩色(Truecolor或RGB)还是索引色(Indexed image)。例如常见的JPEG图片属于真彩色,而GIF则是索引色。

索引色的图片数据为一个二维矩阵X,外加一个颜色表map,也就是说读图片时用的语法应该是:
[X, map] = imread(...)
矩阵X的元素为正整数,它所代表的颜色由map中相应位置的颜色决定。map是一个n*3的矩阵,每行代表一个颜色。索引色的图片也可以是彩色的,取决于map里面有哪些颜色。

而真彩色的图片是一个三维数组,数组的前两维分别对应图片的高和宽,第三维的长度为3,其元素分别代表红绿蓝三基色的值。

明白了上面的道理,翻转就不困难了:
x=handles.img; % 图像数据
x=x(end:-1:1,:,:); % 上下翻转
x=x(:,end:-1:1,:); % 左右翻转
上面的做法既适用于真彩色,也适用于索引色(其实flipud和fliplr也是采用类似的语法实现的,但针对的是二维数组,所以对三维数组会出错)。

希望对楼主有帮助,有问题可再追问。

热心网友 时间:2023-04-22 21:04

因为彩图是个三维的矩阵,你要对第三维的每一组分别做翻转再组合起来。

例子:
case '左右翻转'
T=handles.img;
f(:,:,1)=fliplr(handles.img(:,:,1));
f(:,:,2)=fliplr(handles.img(:,:,2));

f(:,:,3)=fliplr(handles.img(:,:,3));

imshow(f);追问哦 可以了 3Q!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com