PS 图像调整算法——自动色阶 (Auto Levels)
PS 给出的定义:
Enhance Per Channel Contrast:Maximizes the tonal range in each channel to produce a more dramatic correction.Because each channel is adjusted individually, Enhance Per Channel Contrast may remove
or introduce color casts.The Auto Levels command uses this algorithm.
简单来说,就是对R,G,B三个通道的动态范围分别进行拉伸。这个算法还要考虑一个 clipping percentage, 默认值是 0.1%。根据这个定义,可以先编写一个拉伸动态范围的函数:
(函数中默认图像的动态范围是 0-1).
if x<x_min: y=0;
if x>x_max: y=1;
if x_min < x< x_max: y=(x-x_min)/(x_max-x_min);
function I_out=F_color(I, percent)
%%% the tonal range of the input image is 0-1.
[row, col]=size(I);
I_sort=sort(I(:));
I_out=I;
%%% based on the clipping percentage,
%%% compute the upper and lower boundaries
if (percent==0)
I_min=min(I_sort)
I_max=max(I_sort)
else
I_min=I_sort(floor(row*col*percent))
I_max=I_sort(floor(row*col*(1-percent)))
end
for i=1:row
for j=1:col
if(I(i,j)<I_min)
I_out(i,j)=I_min;
elseif(I(i,j)>I_max)
I_out(i,j)=1;
else
I_out(i,j)=(I(i,j)-I_min)*(1-I_min)/(I_max-I_min)+I_min;
end
end
end
对三个通道分别进行拉伸,可以得到最终调整后的图像。
clc;
clear all;
Image=imread('8.jpg');
Image=double(Image)/255;
imshow(Image);
R=Image(:,:,1);
G=Image(:,:,2);
B=Image(:,:,3);
percent=0.001;
Image_out=Image;
Image_out(:,:,1)=F_color(R, percent);
Image_out(:,:,2)=F_color(G, percent);
Image_out(:,:,3)=F_color(B, percent);
figure, imshow(Image_out);
原图:
调整后的图:
PS 图像调整算法——自动色阶 (Auto Levels)的更多相关文章
- PS 图像调整算法——阈值
PS里面这个算法,先将图像转成灰度图像,然后根据给定的阈值,大于该阈值的像素赋值为1,小于该阈值的赋值为0. if x>T, x=1; if x<T, x=0; 原图: 效果图:阈值为 1 ...
- PS 图像调整算法——自动对比度 (Auto Contrast)
PS 给出的定义: Enhance Monochromatic Contrast: Clips all channels identically. This preserves the overall ...
- PS 图像调整算法——黑白
这个算法是参考自 阿发伯 的博客: http://blog.csdn.net/maozefa 黑白调整 Photoshop CS的图像黑白调整功能,是通过对红.黄.绿.青.蓝和洋红等6种颜色的比例调节 ...
- PS 图像调整算法——饱和度调整
算法参考自 阿发伯 的博客. http://blog.csdn.net/maozefa 饱和度调整 图像的饱和度调整有很多方法,最简单的就是判断每个象素的R.G.B值是否大于或小于128,大于加上调整 ...
- PS 图像调整算法— —渐变映射
这个调整简单来说就是先建立一张lookup table, 然后以图像的灰度值作为索引,映射得到相应的颜色值.图像的灰度值是由图像本身决定的,但是lookup table 却可以各种各样,所以不同的lo ...
- PS 图像调整算法——色调分离
色调分离的原理就是将R, G, B每个通道 0-255 的色调区间进行强制划分到给定的区间里去,所以色调会合并,最终的图像看起来颜色就是一块一块的. clc; clear all; close all ...
- PS 图像调整算法——亮度调整
这个算法是参考自 阿发伯 的博客,在此对 阿发伯 表示感谢, http://blog.csdn.net/maozefa 亮度调整 非线性亮度调整: 对于R,G,B三个通道,每个通道增加相同的增量. 线 ...
- PS 图像调整算法——反相
这个顾名思义,对图像做减法. Image_new=1-Image_old; 原图: 反相:
- Python: PS 图像调整--饱和度调整
本文用 Python 实现 PS 图像调整中的饱和度调整算法,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...
随机推荐
- FFmpeg的HEVC解码器源代码简单分析:概述
===================================================== HEVC源代码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpe ...
- linux下的环境变量
环境变量有时候要查找,但是经常忘记有哪些文件,现在做一个总结: /etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/e ...
- memcached实战系列(五)Memcached: List all keys 查询所有的key
memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看 ...
- 用API创建用户
DECLARE lc_user_name VARCHAR2(100) := 'PRAJ_TEST'; lc_user_password VARCHAR2(100) := 'Oracle123'; ld ...
- 简单RPC实现之Netty实现
所谓RPC就是远程方法调用(Remote Process Call ),简单的来说就是通过MQ,TCP,HTTP或者自己写的网络协议来传输我要调用对方的什么接口,对方处理之后再把结果返回给我.就这么 ...
- 后端分布式系列:分布式存储-HDFS 与 GFS 的设计差异
「后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点. 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现 ...
- iOS中 支付宝钱包详解/第三方支付 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! iOS开发者交流QQ群: 446310206 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址 ...
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候 ...
- ORACLE数据库 DBA常用知识
<常用命令参考> 个系统变量值 SQL> show user --显示当前连接用户 SQL> show error --显示错误 SQL> set heading off ...
- MySQL 如何使用索引 较为详细的分析和例子
在数据库表中,使用索引可以大大提高查询速度. 假如我们创建了一个 testIndex 表: CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name V ...