导航:首页 > 编程语言 > pythonrgb2hsv

pythonrgb2hsv

发布时间:2023-04-24 14:11:55

python实现grb和hsv转换

这个输出整数还是小数,估计输出整数就可以,如果希望输出浮点数,可以将round去掉。


importmath
defhsv2rgb(h,s,v):
h=float(h)
s=float(s)
v=float(v)
h60=h/60.0
h60f=math.floor(h60)
hi=int(h60f)%6
f=h60-h60f
p=v*(1-s)
q=v*(1-f*s)
t=v*(1-(1-f)*s)
r,g,b=0,0,0
ifhi==0:r,g,b=v,t,p
elifhi==1:r,g,b=q,v,p
elifhi==2:r,g,b=p,v,t
elifhi==3:r,g,b=p,q,v
elifhi==4:r,g,b=t,p,v
elifhi==5:r,g,b=v,p,q
r,g,b=int(r*255),int(g*255),int(b*255)
returnr,g,b
defrgb2hsv(r,g,b):
r,g,b=r/255.0,g/255.0,b/255.0
mx=max(r,g,b)
mn=min(r,g,b)
df=mx-mn
ifmx==mn:
h=0
elifmx==r:
h=(60*((g-b)/df)+360)%360
elifmx==g:
h=(60*((b-r)/df)+120)%360
elifmx==b:
h=(60*((r-g)/df)+240)%360
ifmx==0:
s=0
else:
s=df/mx
v=mx
returnh,s,v


if__name__=="__main__":
fp=open("1.txt","w")
forlineinopen("rgb2hsv.txt",'r'):
r,g,b=map(int,line.split(','))
h,s,v=rgb2hsv(r,g,b)
fp.write("%d,%d,%d "%(round(h),round(s),round(v)))

fp.close()

⑵ python中fig,ax=plt.subplots什么意思

fig,ax=plt.subplots的意思是将plt.subplots()函数的返回值赋值给fig和ax两个变量。

plt.subplots()是一个函数,返回一个包含figure和axes对象的元组,因此,使用fig,ax=plt.subplots()将元组分解为fig和ax两个变量。

通常,我们只用到ax:

fig,ax = plt.subplots(nrows=2, ncols=2)

axes = ax.flatten()

把父图分成2*2个子图,ax.flatten()把子图展开赋值给axes,axes[0]便是第一个子图,axes[1]是第二个。


(2)pythonrgb2hsv扩展阅读

在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:

def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,

subplot_kw=None, gridspec_kw=None, **fig_kw):

参数:

nrows,ncols:子图的行列数。

sharex, sharey:

设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,

设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,

设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,

设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。

返回值

fig:matplotlib.figure.Figure对象

ax:子图对象(matplotlib.axes.Axes)或者是他的数组

⑶ matlab中函数rgb2hsv使用的转换公式是什么

公式:
H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别相隔120度。互补色分别相差180度。 纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。 V表示色彩笑圆的明亮程度,范围从0到1。薯升谨有一点要注意:它和光强度之间并没有数基直接的联系。 RGB转化到HSV的算法:
max=max(R,G,B)
min=min(R,G,B)
if R = max, H = (G-B)/(max-min)
if G = max, H = 2 + (B-R)/(max-min)
if B = max, H = 4 + (R-G)/(max-min)
H = H * 60 if H < 0, H = H + 360
V=max(R,G,B)
S=(max-min)/max
HSV转化到RGB的算法
if s = 0 R=G=B=V
else H /= 60;
i = INTEGER(H)
f = H - i
a = V * ( 1 - s )
b = V * ( 1 - s * f )
c = V * ( 1 - s * (1 - f ) )
switch(i)
case 0: R = V; G = c; B = a;
case 1: R = b; G = v; B = a;
ase 2: R = a; G = v; B = c;
case 3: R = a; G = b; B = v;
case 4: R = c; G = a; B = v;
case 5: R = v; G = a; B = b;
HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。 一般说来,人眼最大能区分128种不同的色彩,130种色饱和度,23种明暗度。如果我们用16Bit表示HSV的话,可以用7位存放H,4位存放S,5位存放V,即745或者655就可以满足我们的需要了。 由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛,如Photoshop(在Photoshop中叫HSB)等等,但这也决定了它不适合使用在光照模型中,许多光线混合运算、光强运算等都无法直接使用HSV来实现。

⑷ opencv-python简单使用--识别滑动验证码缺口

以上是需要是别的图片缺口,来自某东登录。
opencv是计算机视觉。

1、 imread :读取图片
  imread(image_path, flag) :
    images_path :图片路径,找不到不报错
 枝磨  flag :
     1/cv2.IMREAD_COLOR :彩色图片,图片透明性会被忽略,默认参数
     0/cv2.IMREAD_GRAYSCALE :灰色图片
     -1/cv2.IMREAD_UNCHANGED :包括其alpha通道
2、 imwrite
  imwrite(img_path_name,img)
   img_path_name :保存的文件名
   img :文件对象
3、 cvtColor
   cvtColor(img,code)
  img : 图像对象
   code :
    cv2.COLOR_RGB2GRAY : RGB转换到灰度模式
  咐搭档  cv2.COLOR_RGB2HSV : RGB转换到HSV模式(hue,saturation,Value)衡乱
4、 matchTemplate
  matchTemplate(img_path, bg_path, cv2.TM_CCOEFF_NORMED)
   img_path :对比图片
   bg_path :背景图片
  cv2.TM_CCOEFF_NORMED

⑸ 我做毕业设计,图像智能分类,我是使用matlab,rgb2hsv函数,请问怎么提取hsv的H.S.V的值

%可以颂埋用rgb2hsv函数来转换例如:

t=imread('a.bmp'野滚蚂);

HSV=rgb2hsv(t);

H=HSV(:,:,1);%提取备猛64×64×3维矩阵中的64×64×1矩阵
S=HSV(:,:,2);%提取64×64×3维矩阵中的64×64×2矩阵
V=HSV(:,:,3);%提取64×64×3维矩阵中的64×64×3矩阵

⑹ python-opencv怎样找到要跟踪对象的HSV

其实这真的很简单,函数 cv2.cvtColor() 也可以用到这里。但是现在你要传入的参数是(你想要
的)BGR 值而不是一副图。例如,我们要找到绿色的 HSV 值,我们只需在终端输入以下命令:
**import cv2
import numpy as np
green=np.uint8([0,255,0])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
error: /builddir/build/BUILD/opencv-2.4.6.1/
moles/imgproc/src/color.cpp:3541:
error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)
in function cvtColor
#scn (the number of channels of the source),
#i.e. self.img.channels(), is neither 3 nor 4.
#
#depth (of the source),
#i.e. self.img.depth(), is neither CV_8U nor CV_32F.
# 所以不能用 [0,255,0] ,而要用 [[[0,255,0]]]
# 这里的三层括号应该分别对应于 cvArray , cvMat , IplImage
green=np.uint8([[[0,255,0]]])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
print hsv_green
[[[60 255 255]]]**
**扩展缩放只是改变图像的尺寸大小。OpenCV 提供的函数 cv2.resize()
可以实现这个功能。图像的尺寸可以自己手动设置,你也可以指定缩放因子。我
们可以选择使用不同的插值方法。在缩放时我们推荐使用 cv2.INTER_AREA,
在扩展时我们推荐使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR。
默认情况下所有改变图像尺寸大小的操作使用的插值方法都是 cv2.INTER_LINEAR。
你可以使用下面任意一种方法改变图像的尺寸:**
12345671234567
**# -*- coding: utf-8 -*-
"""
@author: Andrew
"""
import cv2
import numpy as np

img=cv2.imread('tu.jpg')
res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)

height,width=img.shape[:2]
res=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)

while(1):
cv2.imshow('res',res)
cv2.imshow('img',img)

if cv2.waitKey(1)&0xFF==27:

break
cv2.destroyAllWindows()**


0

⑺ 提取HSV颜色特征,并计算维数的熵,最后保存特征和熵,形式:图像名、特征和熵,用python实现,怎么实现

可以使用Python版的opencv 来实现。

现读取图片:

importcv2
importnumpyasnp

image=cv2.imread('./src/q5.png')
HSV=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)

计算熵

img=np.array(HSV)
foriinrange(len(img)):
forjinrange(len(img[i])):
val=img[i][j]
tmp[val]=float(tmp[val]+1)
k=float(k+1)
foriinrange(len(tmp)):
tmp[i]=float(tmp[i]/k)
foriinrange(len(tmp)):
if(tmp[i]==0):
res=res
else:
res=float(res-tmp[i]*(math.log(tmp[i])/math.log(2.0)))

保存:
HSV图形可以直接存储,特征可以存xml中~

cv2.imwrite("具体路径",HSV)

⑻ 如何用python实现颜色空间转换

可以考虑姿轿使用python+opencv,禅册则比源生的python自己编程转换贺棚要方便得多。
另外一个选择就是用python自己的库:PIL
colorsys.rgb_to_hsv

⑼ Opencv用Python实现灰度图

请题主把两张图上传上来。具体方法:是上传到网络网盘然后链接贴过来

⑽ python用PIL如何获得一张图片的亮度值

图像的亮度是指每一个点的亮度,如果比差世较两个图像的亮度的话可能就要和尘计算所有点的亮度平均值,下面是计算某个点的亮度值的程序,仅供参考。
import Image
im=Image.open("d:/lena.jpg")
print im.mode #查看图像唤庆禅的模式
im1=im.convert("YCbCr") #转换图像的模式到视频模式
y,cb,cr=im1.getpixel((10,10)) #提取点(10,10)位置的亮度、蓝色分量、红色分量的值。
print y #输出亮度值
后面两步循环就可以计算整个图像的亮度平均值。

阅读全文

与pythonrgb2hsv相关的资料

热点内容
极速抖音已加密怎么办 浏览:599
matlab拉格朗日算法框图 浏览:426
华为公司计算机视觉算法顾问 浏览:250
夏老师讲的单片机 浏览:294
在编程中如何将图片放大 浏览:161
appstore怎么看是否付费 浏览:603
程序员和硕士 浏览:951
gcc编译消耗内存过多 浏览:281
昌邑网站制作源码 浏览:127
单片机的反向编译 浏览:463
subsample算法 浏览:899
苹果免费看书app哪个最好 浏览:885
c语言加密怎么弄 浏览:842
c语言编译的错误提示 浏览:767
验机苹果app哪个最好 浏览:666
光遇国际服安卓如何购买礼包 浏览:55
163app怎么下载 浏览:247
电脑程序员下场 浏览:45
编译原理ll1文法判断 浏览:727
qt用vs2015编译 浏览:553