找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2396|回复: 0
收起左侧

MATLAB代码_图像量化和抖动实验

[复制链接]
ID:508187 发表于 2019-4-9 20:01 | 显示全部楼层 |阅读模式
1. 完成一个主函数调用三个功能的子函数。并显示图像处理后的结果。如果输入图像是彩图,RGB三个通道请做相同处理
2. 子函数完成如下功能:
(1). 对原始的8bits图像进一步均匀量化,量化函数入口参数img和量化的位数bits,出口参数为量化后的图像,请参考附件给出的函数quantize_image说明;(2). 对输入图像完成二值抖动。参考课件25页,typical methods中的方法3.具体步骤包括       i). 构建抖动模板,要求模板大小通过参数可调,模板中每个整数仅出现一次,位置随机;       ii). 根据抖动模板的大小完成完成对原始图像的均匀量化;       iii). 根据量化后的值与模板对应位置比较大小产生二值图。(3). 对输入图像完成Floyd_Steinberg抖动。 要求和注意事项:       i). 量化函数可用子函数(1)代替find_closest_palette_color();       ii). 注意处理后的结果不能越界;

0.png
下面是主函数的代码,各个子函数代码在附件内:


主函数:
clear;
%定义全局变量
pattern_size=8;%dither函数的参数
dbits_color=6;
dbits_gray=2;


image_old_color=imread('lena.jpg');
image_old_gray=imread('lena.bmp');


subplot(2,3,1);
imshow(image_old_color);
title('原彩色图像');


subplot(2,3,4);
imshow(image_old_gray);
title('原黑白图像');


image_d_color=dither_by_pattern(image_old_color, pattern_size); %dither函数可以直接处理彩色图像或黑白图像
subplot(2,3,2);
imshow(image_d_color);
title('dither函数处理彩色图像');


image_d_gray=dither_by_pattern(image_old_gray, pattern_size); %dither函数可以直接处理彩色图像或黑白图像
subplot(2,3,5);
imshow(image_d_gray);
title('dither函数处理黑白图像');


image_f_color=floyd_steinberg(image_old_color, dbits_color);
subplot(2,3,3);
imshow( image_f_color );%floyd函数可以直接处理彩色图像或黑白图像
title('floyd函数处理彩色图像');


image_f_gray=floyd_steinberg(image_old_gray, dbits_gray);
subplot(2,3,6);
imshow( image_f_gray );%floyd函数可以直接处理彩色图像或黑白图像
title('floyd函数处理黑白图像');


psnr_color=PSNR(image_old_color,image_f_color)
psnr_gray=PSNR(image_old_gray,image_f_gray)

全部资料51hei下载地址:
MATLAB_图像抖动.zip (78.66 KB, 下载次数: 54)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表