实验要求:

Reducing the Number of Gray Levels in an Image
Objective
To understand how the number of gray levels affect the image perceptual quality.
Main requirements:
Ability of programming with C, C++, or Matlab.
Instruction manual:
(a) Write a computer program capable of reducing the number of gray levels in a image from 256 to 2, in integer powers of 2. The desired number of gray levels needs to be a variable input to your program.
(b) Download Fig. 2.21(a) and duplicate the results shown in Fig. 2.21 of the book.

英文不懂的查字典,不做赘述。
编写MATLAB函数”reduceGrayLevel.m”:

function img_o = reduceGrayLevel( img_i, level )
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明imagesize = size(img_i);num = 256 / level;%创建新的图像,与原图像大小相同img_o = uint8(zeros(imagesize(1), imagesize(2)));% 灰度变换for r = 1:1:imagesize(1)for c = 1:1:imagesize(2)img_o(r, c) = fix(double(img_i(r,c))/num) * 255 / (level-1);endendend

运行下面程序:

%%
clear all;
clc;
close all;%%
image_name = 'general_img.jpg';
image = imread(image_name);image_level_128 = reduceGrayLevel(image, 128);
image_level_64 = reduceGrayLevel(image, 64);
image_level_32 = reduceGrayLevel(image, 32);
image_level_16 = reduceGrayLevel(image, 16);
image_level_8 = reduceGrayLevel(image, 8);
image_level_4 = reduceGrayLevel(image, 4);
image_level_2 = reduceGrayLevel(image, 2);figure(1)
subplot(2,4,1), imshow(image)
subplot(2,4,2), imshow(image_level_128)
subplot(2,4,3), imshow(image_level_64)
subplot(2,4,4), imshow(image_level_32)
subplot(2,4,5), imshow(image_level_16)
subplot(2,4,6), imshow(image_level_8)
subplot(2,4,7), imshow(image_level_4)
subplot(2,4,8), imshow(image_level_2)

实验结果:

很明显,随着灰度级的减小,图片越来越不清晰。

数字图像处理实验(2):PROJECT 02-02, Reducing the Number of Gray Levels in an Image相关推荐

  1. 【图像处理】图像灰度级减少, 图像缩放(Reducing the Number of Gray Levels, Zooming and Shrinking)

    实验要求 (1.a) 编写一个以2 的幂次方将给定图像的灰度级数从256 减少到2 的程序.图像的灰度级数以参数变量的形式传递到所编写的程序中. (1.b) 使用图2.21(a) 以(1.a)中编写的 ...

  2. Reducing the Number of Gray Levels, Zooming and Shrinking Images

    摘    要:本实验分为三部分:编写一个以2的幂次方将一幅图像的灰度级数从256减少到2:编写一个基于像素复制法的图像缩放程序,要求缩放因子为整数:编写一个基于双线性插值法的图像缩放程序,要求输入参数 ...

  3. 数字图像处理实验(总计23个)汇总

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  4. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理

    数字图像处理实验 一.数字图像处理实验 实验七 图像的复原处理 一.实验目的 熟悉几种在实际应用中比较重要的图像复原技术,学会用MATLAB复原函数对退化图像进行复原处理. 二.实验内容 1.用点扩散 ...

  5. 数字图像处理实验——Python语言实现

    数字图像处理实验--Python语言实现 实验一:数字图像处理入门 实验二:直方图均衡 实验三:线性平滑和锐化--掩模法 实验四:非线性平滑--中值滤波 实验五:非线性锐化--梯度法 GitHub地址 ...

  6. 数字图像处理实验三图像增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的 感性认识,巩固所学的图像增强的理论知识和相 关算法. (2)熟练掌握直方图均衡化和直方图规定化的计算过 程. (3)熟练掌握空域滤波中常 ...

  7. 数字图像处理实验四图像频域增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...

  8. 数字图像处理实验5图像复原

    一.实验目的 (1)了解图像复原的目的及意义,加深对图像复原理论的认识. (2)掌握维纳滤波复原基本原理. (3)掌握约束最小二乘方复原方法. (4)掌握盲解卷积复原方法 二.实验内容  (1)维纳滤 ...

  9. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...

    <数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...

最新文章

  1. 天玥运维安全网关默认密码_Soul网关发布全新架构V2.2.0,让高性能网关变得如此简单
  2. Python 经典模块可能都学过,10道题测试你会不会用?
  3. tp5视图里写原生php,tp5中使用原生sql查询总结
  4. spanning-tree extend system-id
  5. php如何跟踪调试,PHP使用debug_backtrace方法跟踪调试代码调用详解
  6. Saltstack之自定义grains
  7. 一周成python大神_2个月把你变成selenium+Python大神,上海悠悠带你飞!
  8. 苹果电脑Android我的电脑,苹果电脑连接安卓手机怎么在电脑上找到手机文件?...
  9. Vue DevTools `Devtools inspection is not available` 使用问题
  10. 皮肤电研究: 情绪识别的特征提取与选择
  11. 从Vimeo获取img缩略图?
  12. Win10下手把手教你Mask R-CNN用自己的数据集训练(从labelme标记开始)
  13. WIN10鼠标指针在等待状态下出现重影、假影、虚影,、显示错误的问题。
  14. Android自定义TabActivity(实现仿新浪微博底部菜单更新UI)
  15. 面向数据共享的教育数据标准体系研究与建设实践
  16. 于娟《生命日记》——复旦大学教师于娟对大学生健康的建议
  17. 华为RPA使用注意事项
  18. 淮北卫生学校可有计算机专业,浅谈卫生学校计算机教学的发展
  19. c++中“::”和“:”啥意思
  20. Php微信支付token,微信支付的哪个环节会用到access_token

热门文章

  1. mysql 平均响应时间_Percona-Server/MySQL响应时间统计
  2. 【C++】37.为什么要使用Lambda表达式
  3. 【opencv】1.opencv安装、编译、运行等踩坑记录
  4. Resilience4j-轻量级熔断框架
  5. EasyMock 使用方法与原理剖析
  6. 什么是Java对象分配率?
  7. Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理
  8. 鸟哥的Linux私房菜(服务器)- 第六章、 Linux 网络侦错
  9. 程序员面试题精选100题(54)-C++/C#面试题(3)
  10. Python爬虫入门(7):正则表达式