图像增强算法:Gamma映射算法及MATLAB实现

(本文只介绍算法及实现,关于Gamma的具体原理需要大家自行去了解)

目录

一.计算公式

二.MATLAB的实现


一.计算公式

将像素扩展到0-255,上述计算公式进一步变形如下:

当r<1时,增强暗部细节,压缩亮部,用于处理过暗的图像;

当r>1时,增强亮部细节,压缩暗部,用于处理过亮的图像。

二.MATLAB的实现

Matlab 复制代码
clc;
clear all;

img = imread('D:\matlab file\image_gamma\yu.bmp');
img = rgb2gray(img);
[h,w] = size(img);

figure('Position', [700,200, 1000, 800]);  %设置figure的大小
subplot(1,3,1);imshow(img);title('原图');

img = double(img);
image1 = zeros(h,w);
for i = 1 : h
    for j = 1 : w
        image1(i,j) = (255/(255.^2.2)) * img(i,j).^2.2; %gamma取2.2
    end
end

image1 = uint8(image1);

subplot(1,3,2);imshow(image1);title('gamma = 2.2的映射');

image2 = zeros(h,w);
for m = 1 : h
    for n = 1 : w
        image2(m,n) = (255/(255.^(1/2.2))) * img(m,n).^(1/2.2); %gamma取1/2.2
    end
end

image2 = uint8(image2);

subplot(1,3,3);imshow(image2);title('gamma = 1/2.2的映射');

显示效果如下所示

参考自《基于MATLAB与FPGA的图像处理教程》。

内容仅供学习使用,请勿转载。

如有问题,欢迎指正。

相关推荐
Once_day3 分钟前
C++之《程序员自我修养》读书总结(1)
c语言·开发语言·c++·程序员自我修养
偷吃的耗子18 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
喜欢喝果茶.21 分钟前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓22 分钟前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)22 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
island131444 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
坚持就完事了1 小时前
Java中的集合
java·开发语言
魔芋红茶1 小时前
Python 项目版本控制
开发语言·python
云小逸1 小时前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库