# 数字图像处理实验（2）：PROJECT 02-02， Reducing the Number of Gray Levels in an Image

606人阅读 评论(0)

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.

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);
end
end

end

%%
clear all;
clc;
close all;

%%
image_name = 'general_img.jpg';

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)


0
0

个人资料
• 访问：115425次
• 积分：2290
• 等级：
• 排名：第19346名
• 原创：110篇
• 转载：3篇
• 译文：1篇
• 评论：166条
博客专栏
 Python dlib学习 文章：12篇 阅读：25164
阅读排行
最新评论