python数字图像处理、色彩空间类型转换_常用的色彩空间的转换
转载的,留下学习!
using System;
using System.Drawing;
namespace EngTyping.Class
{
///
/// ColorHandle 处理Rgb|Hsv的相互转换
///
internal class ColorHandle
{
public int H,S,V;
public int R,G,B;
public int C,M,Y,K;
///
/// 处理Rgb到Hsv的转换
///
///
///
///
///
public void RgbToHsv(int R,int G,int B)
{
Color MyColor=Color.FromArgb(R,G,B);
H=Convert.ToInt32(MyColor.GetHue());
//奇怪——用微软自己的方法获得的S值和V值居然不对
//S=Convert.ToInt32(MyColor.GetSaturation()/255*100);
//V=Convert.ToInt32(MyColor.GetBrightness()/255*100);
decimal min;
decimal max;
decimal delta;
decimal R1=Convert.ToDecimal(R)/255;
decimal G1=Convert.ToDecimal(G)/255;
decimal B1=Convert.ToDecimal(B)/255;
min = Math.Min(Math.Min(R1, G1), B1);
max = Math.Max(Math.Max(R1, G1), B1);
V = Convert.ToInt32(max*100);
delta = (max - min)*100;
if (max == 0 || delta == 0)
S = 0;
else
S = Convert.ToInt32(delta / max);
}
public void RgbToHsv(Color MyColor)
{
//Color MyColor=Color.FromArgb(R,G,B);
int R = MyColor.R;
int G = MyColor.G;
int B = MyColor.B;
H=Convert.ToInt32(MyColor.GetHue());
//奇怪——用微软自己的方法获得的S值和V值居然不对
//S=Convert.ToInt32(MyColor.GetSaturation()/255*100);
//V=Convert.ToInt32(MyColor.GetBrightness()/255*100);
decimal min;
decimal max;
decimal delta;
decimal R1=Convert.ToDecimal(R)/255;
decimal G1=Convert.ToDecimal(G)/255;
decimal B1=Convert.ToDecimal(B)/255;
min = Math.Min(Math.Min(R1, G1), B1);
max = Math.Max(Math.Max(R1, G1), B1);
V = Convert.ToInt32(max*100);
delta = (max - min)*100;
if (max == 0 || delta == 0)
S = 0;
else
S = Convert.ToInt32(delta / max);
}
///
/// 处理Hsv到Rgb的转换
///
///
///
///
public void HsvToRgb(int H,int S,int V)
{
H=Convert.ToInt32(Convert.ToDecimal( H )/360*255);
S=Convert.ToInt32(Convert.ToDecimal( S )/100*255);
V=Convert.ToInt32(Convert.ToDecimal( V )/100*255);
if (S==0)
{
R=0;
G=0;
B=0;
}
decimal fractionalSector;
decimal sectorNumber;
decimal sectorPos;
sectorPos = (Convert.ToDecimal(H)/255*360)/60;
sectorNumber = Convert.ToInt32(Math.Floor(Convert.ToDouble(sectorPos)));
fractionalSector = sectorPos - sectorNumber;
decimal p;
decimal q;
decimal t;
decimal r=0;
decimal g=0;
decimal b=0;
decimal ss=Convert.ToDecimal(S)/255;
decimal vv=Convert.ToDecimal(V)/255;
p =vv * (1 - ss);
q = vv * (1 - (ss * fractionalSector));
t = vv * (1 - (ss * (1 - fractionalSector)));
switch (Convert.ToInt32(sectorNumber))
{
case 0:
r =vv;
g = t;
b = p;
break;
case 1:
r = q;
g = vv;
b = p;
break;
case 2:
r = p;
g = vv;
b = t;
break;
case 3:
r = p;
g = q;
b = vv;
break;
case 4:
r = t;
g = p;
b = vv;
break;
case 5:
r = vv;
g = p;
b = q;
break;
}
R= Convert.ToInt32(r * 255);
G= Convert.ToInt32(g * 255);
B= Convert.ToInt32(b * 255);
}
///
/// RgbtoCmy
///
///
///
///
public void RgbToCmyk(decimal R,decimal G,decimal B)
{
C = Convert.ToInt32((255 - Math.Abs(R)) * 100 / 255);
M = Convert.ToInt32((255 - Math.Abs(G)) * 100 / 255);
Y = Convert.ToInt32((255 - Math.Abs(B)) * 100 / 255);
}
}
}
python数字图像处理、色彩空间类型转换_常用的色彩空间的转换相关推荐
- python数字图像处理以及绘图
1, subplot的使用 matlab中的用法: subplot(m,n,p)或者subplot(m n p) subplot是将多个图画到一个平面上的工具.其中,m和n代表在一个图像窗口中显示m行 ...
- python绘制灰度图片直方图-python数字图像处理实现直方图与均衡化
在图像处理中,直方图是非常重要,也是非常有用的一个处理要素. 在skimage库中对直方图的处理,是放在exposure这个模块中. 1.计算直方图 函数:skimage.exposure.histo ...
- python数字图像处理(17):边缘与轮廓
在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测. 本篇我们讲解一些其它方法来检测轮廓. 1.查找轮廓(find_c ...
- 第1章 Python 数字图像处理(DIP) --绪论
Python 数字图像处理 关于本专栏 此专栏为 Python 数字图像处理(DIP)(冈萨雷斯版),专栏里文章的内容都是来自书里,全部手打,非OCR,因为很多公式,都是用LaTex输入,力求更好看的 ...
- (附源码)python数字图像处理课程平台 毕业设计 242339
Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
- (附源码)Python数字图像处理课程平台 毕业设计242339
Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
- python数字图像处理、色彩空间类型转换_Python+OpenCV图像处理—— 色彩空间转换...
一.色彩空间的转换 代码如下: #色彩空间转换 import cv2 as cv def color_space_demo(img): gray = cv.cvtColor(img, cv.COLOR ...
- python如何实现图片工具_常用的十大 python 图像处理工具
本文为 AI 研习社编译的技术博客,原标题 : 10 Python image manipulation tools. 作者 | Parul Pandey 翻译 | 安其罗•乔尔.JimmyHua 编 ...
- pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法
pil(python image library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:pil. pil ...
最新文章
- STL中的双向队列deque
- (转)iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
- 【HTTP】之HTTP 错误 401.3 - 访问被资源 ACL 拒绝
- 使用Cucumber+Rspec玩转BDD(2)——邮件激活
- CODE[VS] 2824 盗窃-大海的奇迹
- Class的三种构造方法
- 读懂了鱼玄机,就读懂了爱情
- 拼多多关键词搜索接口,商品分类ID搜索商品列表接口,关键词搜索商品销量接口,拼多多销量API接口
- JS设计模式与开发实践
- 计算机重做系统 d盘,pe重装系统后原c盘变称了d盘如何解决
- 网页截图服务器,命令行下的2款网页截图工具推荐
- 全面解析 UI/UE/交互设计
- 基于C#的ico图标制作与应用
- 根据身份证号匹配对应的城市编码
- matlab图像去散焦,matlab为图像加运动模糊和散焦模糊
- html属于页面的底部标签是,HTML5中footer标签的用法你知道吗?,HTML5中的footer标签是什么意思?...
- 睡眠手环APP开发上线
- matlab画左右半圆
- 互联网时光穿梭机WayBack Machine
- php qq登陆网站实例代码,QQ登陆网站实例代码