用matlab编程实现,对一幅灰度图像(大小为:256×256)进行DCT正、反变换。(需要完整程序!)

用matlab编程实现,对一幅灰度图像(大小为:256×256)进行DCT正、反变换。(需要完整程序!),第1张

clear all

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)

对每个像素 作循环 计算即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11350209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存