图像γ矫正,matlab实现

光图像的成像过程:景物反射的光被数码相机捕获到,该信号为光信号。光信号通过光电转换单元转换为电信号,最终我们在计算机中处理或显示器显示的是电信号。电子摄像机的输出电压与场景中光的强度都是非线性的,这些非线性可用:I=C*L^γ*(L为光信号,I为电信号)由此可估计出原始光信号强度L'=C'*(I^(1/γ))
 γ矫正:s = cr^γ  ,r和s分别为处理前后的图像,c为对比度,需要另求。
 γ是各种型号的监视器和计算机系统所期望的平均值,这里默认γ = 0.4
 
clc;
clear;
image = imread('1.jpg');%读入指定位置的图片
image = rgb2gray(image);%将图片转化为灰度图
figure,imshow(image);%显示图片
image = double(image);%将数据转化成double类型
 
[row,col] = size(image);%将矩阵image的行赋值为row,列赋值为col
image = double(image);
 

temp = 0;% 中心像素image(i,j)灰度值与周围4或8近邻像素灰度值之差的平方之和,本文为4
for i=2:row-1
    for j=2:col-1
        temp = temp + (image(i,j)-image(i-1,j))^2 + (image(i,j)-image(i,j-1))^2 + (image(i,j)-image(i,j+1))^2 + (image(i,j)-image(i+1,j))^2  ;
    end
end
 
x = (row-1)*(col-1)*4;
C = temp/x;
 
image =C * image.^0.4;%???有零像素,咋办
 
image = mat2gray(image);%将矩阵转化为灰度图像
figure,imshow(image);

猜你喜欢

转载自blog.csdn.net/JannyYang/article/details/89480874