实验要求

  (1.a) 编写程序实现图6.23,程序的输入为图像中指定的两个灰度级范围。程序的输出为RGB 格式图像,其中,一个灰度级范围显示为指定的彩色,其余的像素以RGB 形式显示为与输入图像对应像素相同的灰度色。

  (1.b) 用上述程序对图1.10(4)进行处理,要求使河流呈现为黄色,其余区域像素与原输入图像灰度保持一致。在结果图像中一些孤立区域一般也会呈现黄色,因此需要选取合适的灰度级范围,使这样的区域尽可能少。

  (2.a) 将dark-stream 图6.35 (该图即图6.35(05))转换为RGB 分量图。用直方图均衡化程序对R, G 和B分量图分别进行直方图均衡化,然后将结结果图转换回jpg 格式。

  (2.b) 用(2.a)中的三个直方图构成一个平均直方图,以此直方图为基础得到单一的直方图均衡化强度变换函数。将该函数分别单独作用到R, G 和B 分量图上,将结果图转换为jpg 格式。比较并解释(2.a)和(2.b)中图像的差异。


技术论述

1、伪彩色图像处理

  伪彩色(也称假彩色)图像处理是指基于一种指定的规则对灰度值赋以颜色的处理。 伪彩色用于区分对单色图像赋予彩色的处理和与真彩色图像相关的处理,应用于人目视观察和解释单幅图像或序列图像钟的灰度级事件。使用彩色的动力之一是人类可以辨识几千种色调和强度,而相比之下只能辨别20多种灰度。

2、灰度分层

  灰度分层(也称密度分层)是伪彩色图像处理最简单的例子之一。如果一副图像被描述为三维图像,则分层方法可以看成是放置一些平行于该图像的坐标平面,然后,每个平面在相交的区域中“切割”图像函数。下图是通过一个平面将图像函数分割为两部分的一个例子。

  实验中,要求程序的输入为图像中指定的两个灰度级范围。程序的输出为RGB 格式图像,其中,一个灰度级范围显示为指定的彩色,其余的像素以RGB 形式显示为与输入图像对应像素相同的灰度色。可通过灰度分层方法进行实现,设定灰度级范围即使用两个平面以“切割”图像,使得灰度级范围内的图像按照要求显示相应彩色颜色。

3、对RGB分量图进行直方图均衡化

  直方图均衡化的基本思想是对图像中像素个数多的灰度级进行扩展,而对图像中像素个数少的灰度进行压缩,从而扩展像素的取值范围,提高对比度和灰度色调的变化,使图像更加清晰。

  直方图均衡化一来可以提高图像的对比度,二来可以把图像变换成像素值是几乎均匀分布的图像。

  假定r已经标准化在[0,1]区间内,r=0表示黑色,r=1表示白色,变换函数为:

s=T(r), 0 =< r < = 1,

  满足以下条件: (a)T(r)是一单值函数,并且在区间[0,1]单调递增; (b)对 0 <= r <= 1,0<= T(r) <=1。


实验结果






实验程序

% --------------------------------------------------第1问----------------------------------------------f1 = imread('Fig1.10(4).jpg');
f1_change = change_color(f1,0,20);subplot(2,1,1);imshow(f1);title('图像Fig1.10(4)');
subplot(2,1,2);imshow(f1_change);title('河流呈现为黄色');% --------------------------------------------------第2问----------------------------------------------f2 = imread('Fig6.35(5).jpg');r = f2(:,:,1);                             % R分量
g = f2(:,:,2);                             % G分量
b = f2(:,:,3);                             % B分量% ---------用直方图均衡化程序对R, G 和B分量图分别进行直方图均衡化-------------r_equal = hist_equal(r);                    % 直方图均衡化
g_equal = hist_equal(g);
b_equal = hist_equal(b);img_equal(:,:,1) = r_equal;                 % 将RGB分量图转换为单一RGB图像
img_equal(:,:,2) = g_equal;
img_equal(:,:,3) = b_equal;% -------用平均直方图均衡化强度变换函数分别作用到R, G 和B分量图上-------------r_hist = imhist(r);
g_hist = imhist(g);
b_hist = imhist(b);
mean_hist = (r_hist + g_hist + b_hist)/3.;  % 计算平均直方图r1 = match(r,mean_hist);                    % 直方图匹配
g1 = match(g,mean_hist);
b1 = match(b,mean_hist);img_mean(:,:,1) = r1;                       % 将RGB分量图转换为单一RGB图像
img_mean(:,:,2) = g1;
img_mean(:,:,3) = b1;% ---------------------------------------------显示图像----------------------------------------------figure;
subplot(2,1,1);imshow(f2);title('图像Fig6.35(5)');
subplot(2,1,2);imshow(img_equal);title('分别直方图均衡化后结果');
imwrite(img_equal,'img_equal.jpg','jpg');   % 转换回jpg格式figure;
subplot(3,2,1);imhist(r);title('R分量直方图');
subplot(3,2,2);imhist(r_equal);title('% R分量均衡化后直方图');
subplot(3,2,3);imhist(g);title('G分量直方图');
subplot(3,2,4);imhist(g_equal);title('% G分量均衡化后直方图');
subplot(3,2,5);imhist(b);title('B分量直方图');
subplot(3,2,6);imhist(b_equal);title('% B分量均衡化后直方图');     figure;imshow(img_mean);title('平均直方图均衡化后结果')
imwrite(img_mean,'img_mean.jpg','jpg');   % 转换回jpg格式
function img_out = change_color(img,gray_low,gray_high)
% 根据题意,指定颜色为黄色rgb(255,255,0)[M,N] = size(img);for m = 1:Mfor n = 1:Nif img(m,n) >= gray_low && img(m,n) <= gray_highimg_out(m,n,1) = 255;img_out(m,n,2) = 255;img_out(m,n,3) = 0;elseimg_out(m,n,1) = img(m,n);img_out(m,n,2) = img(m,n);img_out(m,n,3) = img(m,n);endend
endend
function img_hist_equal = hist_equal(img)
% 直方图均衡化[M,N] = size(img);
img = double(img);
H = zeros(1,256);for k = 0:255                                    % 获取各个灰度级的数量for m = 1:Mfor n = 1:NH(k+1) = H(k+1) + (img(m,n) == k);endend
endP = H/(M*N);                                    % 各个灰度级的概率for k = 2:256                                     % 灰度级累计概率P(k) = P(k) + P(k-1);
endI = uint8(round(P.*255)); % 从[0,1]映射到[0,255]for m = 1:Mfor n = 1:Nimg_hist_equal(m,n) = I(img(m,n)+1);end
end
function img_equal = match(img,mean_hist)
% 直方图匹配[M,N] = size(img);
img = double(img);P = mean_hist/(M*N);                           % 各个灰度级的概率for k = 2:256                                  % 灰度级累计概率P(k) = P(k) + P(k-1);
endfor k = 1:256                                  % 从[0,1]映射到[0,255]I = uint8(round(P.*255));
endfor m = 1:Mfor n = 1:Nimg_equal(m,n) = I(img(m,n)+1);end
endfigure;
x = 0:255;
plot(x,P(x+1));
title('直方图均衡化变换函数图');end

【图像处理】彩色图像处理(Color Image Processing)相关推荐

  1. 数字图像处理与Python实现笔记之彩色图像处理初步

    数字图像处理与Python实现笔记之彩色图像处理初步 摘要 绪论 1 数字图像处理基础知识 2 彩色图像处理初步 2.1 彩色图像的颜色空间 2.1.1 RGB颜色空间 2.1.2 HSI颜色空间 2 ...

  2. 数字图像处理第六章——彩色图像处理(上)

    数字图像处理第六章 数字图像处理---彩色图像处理 (一) 在 MATLAB 中彩色图像的表示 1.1 RGB图像 1.2 索引图像 1.3 处理 RGB图像和索引 (二)彩色空间之间的转换 2.1 ...

  3. 数字图像处理第六章 ——彩色图像处理(下)

    数字图像处理第六章 数字图像处理---彩色图像处理 (五) 彩色图像的空间滤波 5.1 彩色图像的平滑处理 5.2 彩色图像的锐化处理 (六) 直接在 RGB 矢量空间中处理 6.1 使用梯度的彩色边 ...

  4. 冈萨雷斯数字图像处理——彩色图像增强3实例

    冈萨雷斯数字图像处理--彩色图像增强3实例 实例一:基于直方图均衡化的彩色图像增强     要处理的图片:fruit.jpg               example1.m: clc; RGB=im ...

  5. 第6章 Python 数字图像处理(DIP) - 彩色图像处理2 - 灰度分层(灰度分割)和彩色编码,灰度值到彩色变换,Gray to RGB

    第6章主要讲的是彩色图像处理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型:彩色模型的变换关系:还包含由灰度图像怎样处理成假彩色图像:使用彩色分割图像等.本章比较少理论还有变换的描述,主要 ...

  6. 数字图像处理--第六章彩色图像处理基础

    文章目录 6 彩色图像处理 6.1 彩色基础 6.2 彩色模型 6.2.1 RGB彩色模型 6.3 伪彩色图像处理 6.3.1 强度分层 6.4 全彩色图像处理 6.5 查色标(查找表)Look Up ...

  7. 数字图像处理学习笔记 六 彩色图像处理

    目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...

  8. 数字图像处理 第六章 彩色图像处理

    第六章 彩色图像处理 一.彩色基础 物理性质 消色与彩色光 人眼传感器 原色和合成色 颜色特征 二.彩色模型 2.1RGB彩色模型 2.1.1RGB示意图 2.2CMY和CMYK彩色模型 2.3HSI ...

  9. 数字图像处理第六章——彩色图像处理

    目录 引言 一.彩色基础 二.彩色模型 2.1 RGB彩色模型 2.2 CMY和CMYK彩色模型 2.3 HSI彩色模型 三.伪彩色图像处理 3.1 灰度分层 3.2 灰度到彩色的变换 四.彩色变换 ...

  10. 数字图像处理——第六章 彩色图像处理

    数字图像处理--第六章 彩色图像处理 文章目录 数字图像处理--第六章 彩色图像处理 1 彩色模型 1.1 RGB彩色模型 1.2 CMY 和CMYK彩色模型 1.3 HSI彩色模型 2 伪彩色图像处 ...

最新文章

  1. 无缝融合 ZStack与阿里云联手布局混合云市场
  2. 不简单的 SimpleDateFormat
  3. BAT3四大巨头安全负责人破天荒聚在了一起,他们都说了什么?
  4. 提高(微)服务安全的非完全攻略
  5. Zune账号注册教程
  6. 使用dhtmlxgantt制作任务进度表
  7. 计算机类sci四大水刊,官方证实:「四大水刊」之一的 ONCOTARGET 2018年起将不再被 SCI 收录,你怎么看?...
  8. 170312-python爬虫 steam愿望单打折商品
  9. 个人开发者做一款Android App,android如何开发一款赚钱app
  10. 计算机网络-数据交换技术
  11. 云服务器免费suse系统,suse系统
  12. 【JVM · GC】垃圾回收器
  13. ping请求超时的解决方法?
  14. ATFX:5年期LPR利率大降15基点,USDCNH涨破年内高点
  15. Rogue Signs: Deceiving Traffic Sign Recognition with Malicious Ads and Logos
  16. matlab潮高,用MATLAB的T_TIDE程序进行包含误差估计的经典潮汐调和分析.pdf
  17. Clipboard HTML FORMAT 粘贴板中文乱码问题。
  18. 计算机专业大一新生要带电脑吗,大学新生需要带笔记本电脑去学校么
  19. Hermit Crab 工作室加入 The Sandbox 元宇宙
  20. 使用OpenCV+Python构建运动热图视频

热门文章

  1. 【机器学习-西瓜书】八、集成学习:Boosting
  2. 【caffe-windows】 caffe-master 之 classfication_demo.m 超详细分析
  3. pytorch学习笔记(二):自动求梯度
  4. 洛谷 P4823 [TJOI2013]拯救小矮人
  5. HRNet的学习笔记
  6. 开源计划——git的学习笔记
  7. 图像分类——EfficientNet的学习笔记
  8. IntellijIDEA配置Tomcat
  9. 完美解决 IDEA plugins 插件搜索不出结果
  10. MapReduce案例