ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[数字图像处理](一)彩色图像转灰度图像的三种方式与效果分析

2021-04-08 21:02:56  阅读:189  来源: 互联网

标签:彩色图像 title max 数字图像处理 end 灰度 im col row


图像处理(一)

彩色图片转灰度图片


三种实现方式

  • 最大值法

    \(imMax = max( im(i,j,1),im(i,j,2),im(i,j,3) )\)

  • 平均法

    \(imEva = \frac{im(i,j,1)}{3} + \frac{im(i,j,2)}{3} + \frac{im(i,j,3)}{3}\)

  • 加权平均值法

    \(imKeyEva = 0.2989\times im(i,j,1) + 0.5870\times im(i,j,2) + 0.1140\times im(i,j,3)\)

matlba实现

clc;
close all;
clear all;

%   相对路径读入图片(和代码在同一文件夹下)
im = imread('p2.jpg');
%---查看图片,检测是否成功读入
%   对显示的图片进行排版
subplot(2,3,4);
imshow(im);
%   对图片进行命名
title('原图');
[col,row,color] = size(im);%col为图片的行数,row为图片的列数,color对于彩色图片一般为3,每层对应RGB
%利用matlab自带的函数进行 rgb_to_gray;
im_matlab = rgb2gray(im);
subplot(2,3,1);
imshow(im_matlab);
title('matlab自带rgb2gray');
%--------------------------------------------------------
%---用最大值法
%   创建一个全为1的矩阵,长宽等同于原图的
im_max = ones(col,row);

for i = 1:1:col
    for j = 1:1:row
        im_max(i,j) = max( im(i,j,:)  );
    end
end
%   将矩阵变为8byte无符号整型变量(不然无法显示图片)
%   !!!最好在计算操作结束后再变化,不然会有精度问题!!!!!
im_max = uint8(im_max);
subplot(2,3,2);
imshow(im_max);
title('最大值法');
%--------------------------------------------------------
%    平均值法 
im_eva = ones(col,row);

for i = 1:1:col
    for j = 1:1:row
        im_eva(i,j) = im(i,j,1)/3 + im(i,j,2)/3 + im(i,j,3)/3 ;
        %   两种的结果其实一样,但是如果先转换为uint8就会出现精度问题
        %sum1 = im(i,j,1)/3 + im(i,j,2)/3 + im(i,j,3)/3
        %sum2 = ( im(i,j,1) + im(i,j,2)+ im(i,j,3) )/3;
        %fprintf( " %.4f  %.4f \n",sum1 ,sum2 ) ;
    end
end
im_eva = uint8(im_max);
subplot(2,3,3);
imshow(im_eva);
title('平均值法');
%--------------------------------------------------------
%    加权平均法(rgb2gray所使用的权值)
im_keyeva = ones(col,row);
%   加权算法先转换为uint8计算效果更好
im_keyeva = uint8(im_max);
for i = 1:1:col
    for j = 1:1:row
        im_keyeva(i,j) = 0.2989*im(i,j,1) + 0.5870*im(i,j,2) + 0.1140*im(i,j,3) ;
    end
end

subplot(2,3,5);
imshow(im_keyeva);
title('加权平均法');


总结


通过上面的代码结合实际的测试,果然,matlab自带的rgb2gray也就是加权平均的方法,对光线明暗的处理是最好的。

标签:彩色图像,title,max,数字图像处理,end,灰度,im,col,row
来源: https://www.cnblogs.com/hoppz/p/14634795.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有