列举了几种常见的灰度转换算法,通过计算结构相似性参数评价不同转换方式所得到灰度图片之间的相似性,并绘制了不同灰度图片之间的差异。

% gray_convert.m
% sRGB图像转换为灰阶图
Rr = 0.212655;
Rg = 0.715158;
Rb = 0.072187;img_src = imread('airballoon.jpg');
subplot(2,2,1)
imshow(img_src)
title('Original Image')img_gray_1 = rgb2gray(img_src);
subplot(2,2,2)
imshow(img_gray_1)
title('Gray Image One')
%{
[M, N] = size(img_gray);
for m = 1:Mfor n = 1:Nimg_gray(m,n) = Rr*img_src(m,n,1)+Rg*img_src(m,n,2)+Rb*img_src(m,n,3);end
end
%}
img_gray_2 = Rr*img_src(:,:,1)+Rg*img_src(:,:,2)+Rb*img_src(:,:,3);
subplot(2,2,3)
imshow(img_gray_2)
title('Gray Image Two')%{
for m = 1:Mfor n = 1:NR = inv_gam_sRGB(img_src(m,n,1));G = inv_gam_sRGB(img_src(m,n,2));B = inv_gam_sRGB(img_src(m,n,3));img_gray(m,n) = gam_sRGB(Rr*R+Rg*G+Rb*B);end
end
%}
R = inv_gam_sRGB(img_src(:,:,1));
G = inv_gam_sRGB(img_src(:,:,2));
B = inv_gam_sRGB(img_src(:,:,3));
img_gray_3 = gam_sRGB(Rr*R+Rg*G+Rb*B);
subplot(2,2,4)
imshow(img_gray_3)
title('Gray Image Three')% 通过结构相似性参数判断不同转换方式所得到的图片差别
[ssimval, ssimmap] = ssim(img_gray_2,img_gray_1);
fprintf('The SSIM value is %0.4f.\n',ssimval);
figure
subplot(3,1,1)
imshow(ssimmap,[]);
title(sprintf('ssim Index Map - Mean ssim Value is %0.4f',ssimval));[ssimval, ssimmap] = ssim(img_gray_3,img_gray_1);
fprintf('The SSIM value is %0.4f.\n',ssimval);
subplot(3,1,2)
imshow(ssimmap,[]);
title(sprintf('ssim Index Map - Mean ssim Value is %0.4f',ssimval));[ssimval, ssimmap] = ssim(img_gray_3,img_gray_2);
fprintf('The SSIM value is %0.4f.\n',ssimval);
subplot(3,1,3)
imshow(ssimmap,[]);
title(sprintf('ssim Index Map - Mean ssim Value is %0.4f',ssimval));

下面是用到的两个自定义函数文件:

% inv_gam_sRGB.m
% Inverse of sRGB "gamma" function. (approx 2.2)
function y = inv_gam_sRGB(val)var = double(val);c = var./255.0;if ( c <= 0.04045 )y = c./12.92;else y = ((c+0.055).*1.0/1.055).^(12/5);end
end
% gam_sRGB.m
% sRGB "gamma" function (approx 2.2)
function y = gam_sRGB(v)if(v<=0.0031308)v = v.* 12.92;else v = 1.055*v.^(1.0/2.4)-0.055;endy = uint8(v.*255+0.5); % This is correct in C++. Other languages may not require +0.5
end

转换结果如下:

直观上,几种转换算法得到的灰阶图像有什么不同,通过计算SSIM值还是还出有不小差别的。

如要了解更多详细信息,可点击这里查看,讨论里面有详细的理论、算法以及实现。
【参考链接】

  1. https://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color

MATLAB | sRGB图像的灰度转换算法相关推荐

  1. 有趣的6种图片灰度转换算法

    本文转载自blog 转载请注明出处 前言 黑白照片的时代虽然已经过去,但现在看到以前的照片,是不是有一种回到过去的感觉,很cool有木有~ 看完这篇文章,就可以把彩色照片变成各种各样的黑白的照片啦. ...

  2. 图像的灰度化灰度值的读取Matlab

    matlab中图像的灰度化: H = imread('test.png'); I = rgb2gray(H); 原图和灰度图: 在matlab工作区选取灰度矩阵I,即可得到图像详细的灰度值矩阵 图片上 ...

  3. MATLAB的图像灰度线性变换

    下面重点介绍一下如何用MATLAB对图像进行灰度线性变换,具体如下: 1.打开MATLAB主界面,在其中的编辑器中写入下列代码,其中I=imread('G:\MATLAB练习\bm.bmp');此代码 ...

  4. OpenCV图像处理(18)——文件夹下所有图像转灰度(14-15综合)

    对文件夹下所有图像做灰度转换,并做garma校正,产生不同的灰度亮度范围,方案用(13-14) #pragma once #include<stdio.h> #include<ope ...

  5. 第二节 MATLAB中图像数据导入、导出和转换

    图像数据的导入和导出,图像类型和类的转换 MATLAB® 中的基本数据结构体(数组)天然适合表示图像.使用工具箱函数,您可以从支持的图形文件或科学文件格式将图像数据导入工作区.反过来,您也可以将数据从 ...

  6. matlab srgb,matlab – 将Photoshop sRGB复制到LAB转换

    最新答案(我们知道现在错了,等待正确答案) Photoshop是一个非常古老而凌乱的软件.当您执行从模式到另一个模式的转换时,没有明确的文档说明为什么像素值会发生这种或那种情况. 出现问题是因为在Ad ...

  7. 基于c语言图像灰度拉伸算法实现,c语言实现图像灰度均衡化

    通过对灰度直方图进行修正的理论.建模.算法和程序的论述说明如何实现图象的灰度直方图均衡化,达到图象增强的目的. 廛围抖蕉 c语 言实现图像灰度均衡化 郭韶斌 (北京交通大学,北京市 100044) ' ...

  8. 基于MATLAB的图像去雾GUI系统(集成4种去雾算法)

    00 目录 应用背景 去雾算法理论 MATLAB程序实现 源码获取 01 应用背景 由于大气中存在灰尘.烟雾.薄雾和其他漂浮颗粒物,因此大气中拍摄的图像通常会出现颜色失真.模糊.对比度低等问题,而模糊 ...

  9. matlab hough算法车牌识别,一种基于数学形态学和Hough变换的车牌图像检测及定位算法-汽车电子-与非网...

    车牌识别系统(LPR)在现代交通检测和管理部门中发挥着举足轻重的作用.车牌识别系统主要包括车牌定位.字符分割和字符识别三部分[1].由于车牌定位的准确与否将会直接影响到车牌识别的结果,因此,车牌定位是 ...

最新文章

  1. 第三期 预测——Frenet 坐标
  2. 怎么解决svn清理失败且路径显示乱码问题
  3. 邮件服务器收件人数量限制,邮件服务器DBMail
  4. @Autowired和@Resource注解的区别?
  5. Bootstrap 模态对话框只加载一次 remote 数据的解决办法
  6. 计算机winform参考文献写,毕业论文基于C#WinForm的语音通信系统设计.doc
  7. 厉害了我的Qunar!看我工程师写轮眼!
  8. unity 罗技G29开发
  9. C++ 五大链表排序(冒泡、插入、选择、归并、快排)
  10. 为什么uzi排到古手羽就秒_Uzi排到古手羽秒退,网友争相发表看法,直播间弹幕疑似给出答案...
  11. 智能客服搭建(3) - MRCP Server 与 FreeSWITCH 对接
  12. win32Day06:控件
  13. gdb调试的插件安装——gef插件
  14. 脸部匹配测试软件,手把手教你在浏览器中使用脸部识别软件包
  15. Bootstrap Switch 开关控件
  16. linux 下查看知网caj文件的方法
  17. Altium Designer 18板子信息命令
  18. 【图像去雾】基于matlab颜色衰减先验图像去雾【含Matlab源码 2036期】
  19. 天才少年!他们的内心世界你懂吗?道翰天琼认知智能机器人平台API接口为您揭秘。
  20. sublime Text 3 javaScript代码自动提示插件安装步骤

热门文章

  1. GEEer成长日记十二:Modis_LST地表温度产品时间序列分析
  2. leetcode-初级算法-数组-有效的数独(JavaScript)
  3. webpack的面试题总结
  4. 数据分析软件Excel,Origin, Matlab,Mathmatica和Maple
  5. 自动化情侣微信早安信息定时推送
  6. 谷歌浏览器无法访问怎么办
  7. ieltsListen was compiled with optimization - stepping may behave oddly; variables may not be availab
  8. 2021年焊工(初级)新版试题及焊工(初级)考试技巧
  9. 史上最全Java面试题全集(上)
  10. element-upload 自定义上传、限制文件大小、格式以及图片尺寸