zoukankan      html  css  js  c++  java
  • 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);


    原图:



    调整后的图:



  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412727.html
Copyright © 2011-2022 走看看