PHP HSV色相 饱和度 亮度 增强
在开始之前我们先了解一下什么是HSV
HSV 是颜色模型
色调H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

1、HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(V),取0-max(计算机中HSV取值范围和存储的长度有关)。HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。
这里具体讲解什么是HSV

<?php //R, G and B input range = 0 ÷ 255
//H, S and V output range = 0 ÷ 1.0$imagesize = getimagesize("自由网.jpg");//获取文件大小$imageinfo  = imagecreatefromjpeg("自由网.jpg");//获取图片$RGB =array(); for($h=0; $h <$imagesize['1'] ; $h++) //循环高{ for ($w=0; $w <$imagesize['0'] ; $w++) { $temp_rgb =  imagecolorat($imageinfo,$w,$h);//获得某像素的颜色索引值$RGB[$h][$w] = imagecolorsforindex($imageinfo,$temp_rgb);//取得某索引的颜色s}}$arrs = array();
for($h=0; $h <$imagesize['1'] ; $h++) //循环高
{ for ($w=0; $w <$imagesize['0'] ; $w++) { $temp_rgb =  imagecolorat($imageinfo,$w,$h);//获得某像素的颜色索引值$arrs[$h][$w] = RGB(imagecolorsforindex($imageinfo,$temp_rgb));//取得某索引的颜色s}
}
function RGB($arr){$R = $arr['red'];$G = $arr['green'];$B = $arr['blue'];$var_R = ( $R / 255 );$var_G = ( $G / 255 );$var_B = ( $B / 255 );$var_Min = min( $var_R, $var_G, $var_B );    //Min. value of RGB$var_Max = max( $var_R, $var_G, $var_B );    //Max. value of RGB$del_Max = $var_Max - $var_Min   ;          //Delta RGB value$V = $var_Max;if ( $del_Max == 0 )                     //This is a gray, no chroma...{$H = 0;$S = 0;}else                                    //Chromatic data...{$S = $del_Max / $var_Max;$del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;$del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;$del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;if      ( $var_R == $var_Max ) $H = $del_B - $del_G;else if ( $var_G == $var_Max ) $H = ( 1 / 3 ) + $del_R - $del_B;else if ( $var_B == $var_Max ) $H = ( 2 / 3 ) + $del_G - $del_R;if ( $H < 0 ) $H += 1;if ( $H > 1 ) $H -= 1;}// echo $H."<br>" ; // echo $S."<br>" ; // echo $V."<br>" ; $H *=1.01 ;$S *=1.35 ;$V *=1.3005 ;if ($H>=1) {$H = 1;}if ($S>=1) {$S = 1;}// $V *=1.2;//  if ($S<=0) {//    $S = 0;// }if ($V>=1) {$V =  1;}return  Gs($H,$S,$V);//H, S and V input range = 0 ÷ 1.0//R, G and B output range = 0 ÷ 255}
function Gs($H,$S,$V){if ( $S == 2 ){$R = $V * 255;$G = $V * 255;$B = $V * 255;}else{$var_h = $H * 6;if ( $var_h == 6 ) $var_h = 0   ;   //H must be < 1$var_i = intval($var_h)  ;           //Or ... $var_i = floor( $var_h )$var_1 = $V * ( 1 - $S );$var_2 = $V * ( 1 - $S * ( $var_h - $var_i ) );$var_3 = $V * ( 1 - $S * ( 1 - ( $var_h - $var_i ) ) );if      ( $var_i == 0 ) { $var_r = $V     ; $var_g = $var_3 ; $var_b = $var_1; }else if ( $var_i == 1 ) { $var_r = $var_2 ; $var_g = $V     ; $var_b = $var_1; }else if ( $var_i == 2 ) { $var_r = $var_1 ; $var_g = $V     ; $var_b = $var_3; }else if ( $var_i == 3 ) { $var_r = $var_1 ; $var_g = $var_2 ; $var_b = $V;     }else if ( $var_i == 4 ) { $var_r = $var_3 ; $var_g = $var_1 ; $var_b = $V;     }else                   { $var_r = $V     ; $var_g = $var_1 ; $var_b = $var_2; }$arrs['red'] = $var_r * 255;$arrs['green']  = $var_g * 255;$arrs['blue']  = $var_b * 255;return $arrs;}}$im = imagecreatetruecolor(1500,700); //生成真彩图片
$black = imagecolorallocate($im,220,230,250);//设置颜色
imagefill($im,10,1,$black) ;  //填充  // 从左上角开始填充灰色//背景foreach ($RGB as $key => $value) {foreach ($value as $keys => $values) {$R = imagecolorallocate($im,$values['red'],$values['green'],$values['blue']);//设置颜色ImageFilledRectangle($im, $keys,$key, $keys,$key, $R);//绘制图案$R = imagecolorallocate($im,$arrs[$key][$keys]['red'],$arrs[$key][$keys]['green'],$arrs[$key][$keys]['blue']);//设置颜色// ImageFilledRectangle($im, $keys,$key, $keys,$key, $R);//绘制图案imagesetpixel($im,$keys+700,$key, $R);//绘制图案}}header("Content-type:image/png");//png格式imagepng($im);//输出imagedestroy($im);//释放内存?>


这里的 H S V 是 设置 参数 范围 1.0 - 2,



将 V 设置 0.5 可以看到 亮度的变化

PHP HSV色相 饱和度 亮度 增强相关推荐

  1. 修改图片颜色 色相 饱和度 亮度 ColorMatrix

    Android开发中经常会遇到一些简单的图片处理,比如修改图片的颜色,饱和度,亮度等.今天就给大家介绍一下简单的图片处理. 基础知识 颜色的三要素 色调(色相/颜色):物体的颜色: 饱和度(彩度):色 ...

  2. 易语言 调节系统对比度api_一分钟完成色相饱和度!2019最新PS对比度色彩智能调节滤镜来袭...

    大家好,又到了分享的时刻!上期呢给大家分享的PS插件相信大家都已经领取到了!本期了小编继续给大家分享!这次分享的是款堪称傻瓜式的 Photoshop(调节色相插件,因为操作简单不需要基础.它就是Top ...

  3. matlab imadjust将暗图像分别在RGB与HSV域增加亮度

    对于RGB来说,增加亮度是直接对三个颜色维做变换,而对于HSV来说,增加亮度只需要在V这一维做变换即可.这两种方法得出来的结果并不相同,效果图如下所示. 代码如下: srcImage=imread(' ...

  4. 在QT框架下进行仿照PS图像调整功能设计(亮度对比度,色相饱和度及明度)

    原文链接:https://blog.csdn.net/maozefa/article/details/4778934 图像亮度调整分为非线性和线性两种方法. 非线性图像亮度是将图像像素的R.G.B分别 ...

  5. 用OpenCV实现Photoshop算法(七): 调整色相饱和度

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  6. 曲线快捷键,色阶快捷键,曝光度,自然饱和度,色相饱和度,色彩平衡

    ctrl+m  曲线快捷键 ctrl+l    色阶快捷键 曝光度可以调整一下曝光度,减少灰蒙蒙的感觉 自然饱和度可以提亮一下颜色的亮度.自然饱和度中的饱和度对于已经饱和的颜色就不会再进行饱和.色相饱 ...

  7. ps 色相/饱和度,描边,外发光算法(opengl)

    做游戏可能需要有些动态的改变图片效果要求,这些用ps做的很容易,但是耗资源,所以在这里列举几个常用的滤镜算法,效果算是一般,没ps的专业 ~~. #ifdef GL_ES precision medi ...

  8. 数据增强-翻转、旋转、随机颜色、对比度增强、亮度增强、颜色增强

    # imageDir 为原数据集的存放位置 # saveDir 为数据增强后数据的存放位置 ### #def flip(root_path,img_name): #翻转图像img = Image.op ...

  9. C++实现Photoshop色相/饱和度/明度功能

    本文用C++实现Photoshop色相/饱和度/明度功能,界面程序使用BCB6:图片操作采用GDI+.代码也可适用于其它C/C++编译器(可能要稍作修改). 有关Photoshop饱和度调整原理可参见 ...

最新文章

  1. 一文掌握异常检测的实用方法 | 技术实践
  2. python * 与 ** 分别代表元组和字典
  3. linux手动注入网络数据_记一次手动SQL注入
  4. code标签无法渲染html,【菜鸟笔记】记一次django无法正常在ie和edge浏览器渲染html页面-站长资讯中心...
  5. excel导入csv文件_如何将包含以0开头的列的CSV文件导入Excel
  6. 优秀网页设计:带给你灵感的联系页面设计
  7. python表达式3and not5的值_表达式 3 and 5 的值为_学小易找答案
  8. 使用OctreeQuantizer提高gdi+绘图质量
  9. 禁止按钮在一定时间内连续点击
  10. linux vim命令_提升生产力的20大Linux Vim命令
  11. ios::ate和ios::app在C++文件中的区别
  12. C# 代码创建mysql存储过程(使用mysqlScript)
  13. 世界所有国家国际域名英文缩写总结(转)
  14. mongodb数据库导出表的流程
  15. Markdown编辑器使用教程_被迫流浪者的博客
  16. stata 导出 相关系数表_【BBtime】戏说会计论文---stata简单实操
  17. python计算机视觉:PIL图片格式转换
  18. 前端面试题之 对Promise的理解
  19. Variation_Model 差异模板算子总结
  20. ICMP重定向(ICMP redirect)实验分析

热门文章

  1. 01-PHP简介和开发环境的搭建
  2. LAMP平台QQ农场
  3. php+mysql企业员工培训管理系统dzkf87
  4. (五)图片压缩 —— 优化图片文件、内存
  5. FITC修饰药物;CY3荧光标记氟维司群/依西美坦/齐多夫定/丁二酸(琥珀酸)/醋酸卡泊芬净的定制合成
  6. execjs 调用js出现找不到windows对象
  7. python Selenium爬取数据代码学习 冲!!!
  8. fstream头文件
  9. NGINX工作原理解析
  10. 找工作-体能修复8-编程-剑指offer-JZ3、JZ4、JZ5、JZ7、JZ8、JZ9、JZ10、JZ11、JZ12、JZ13、JZ14