I = imread('F:\lena.jpg') %读入图像
I=rgb2gray(I)%如果是彩色图像则变为灰度图像
I1=double(I)%数据变为double型
D = dct2(I1)%dct正变换
I2 = idct2(D) %dct反变换
I2=uint8(I2)
figure(1)subplot(1,2,1)
imshow(I)
title('原灰度图像')
subplot(1,2,2)
imshow(I2)
title('恢复后图像')
不同灰度图像文件有各自的文件格式和色彩格式(颜色指数格式,如GIF, 颜色值格式,归一化颜色值)你需要自己处理,这里不可能给你写一个万能程序。r g b灰度 合成 RGB。 字节排列 可能 是 RGB 也可能是 BGR,也可能 还要 带 A。
下面提供你合成基本原理,针对自己情况 改写。
unsigned char r=0xff,g=0x80,b=0x40 //灰度值为1字节无符号数,数值0到0xff
unsigned int rgb // 合成 为 4 字节, ARGB
rgb = r <<16 | g <<8 | b // 用 位运算 ,移位和按位加
printf("%x ",rgb)
对每个像素 作循环 计算即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)