导航:首页 > 编程语言 > python三维hsv模型

python三维hsv模型

发布时间:2023-01-30 04:41:23

‘壹’ 提取颜色特征并计算熵,使用python实现


正好学到这,练下手。比较晚了,所以写的比较简单,不明白了明天再说

‘贰’ 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-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)

‘伍’ 灰度图图像替换hsv中的v的Python实现,不要调用库函数

也可以转换为灰度图像。 函数原型:void cvCvtColor( const CvArr* src, CvArr* dst, int code ); 参数: src 输入的 8-bit,16-bit或 32-bit单倍精度

‘陆’ python画曲线图背景为白色

这是一种可能的方法。如果转换为HSV色彩空间,蓝色阴影将显示比黑色和白色更高的饱和度,所以......

转换为HSV

找到每行的平均饱和度,并选择平均饱和度超过阈值的行
灰度化那些行,反转并阈值它们
如果反向(突出)背景是除黑色或白色之外的任何颜色,则此方法应该有效。它假设您根据示例将图像偏斜为真正的垂直/水平。

‘柒’ python如何绘制预测模型校准图

python绘制预测模型校准图可以使用校准曲线,因为预测一个模型校准的最简单的方法是通过一个称为“校准曲线”的图(也称为“可靠性图”,reliability diagram)。

这个方法主要是将观察到的结果通过概率划分为几类(bin)。因此,属于同一类的观测值具有相近的概率。

对于每个类,校准曲线将预测这个类的平均值,然后将预测概率的平均值与理论平均值(即观察到的目标变量的平均值)进行比较。

你只需要确定类的数量和以下两者之间的分类策略即可:

1、“uniform”,一个0-1的间隔被分为n_bins个类,它们都具有相同的宽度。

2、“quantile”,类的边缘被定义,从而使得每个类都具有相同数量的观测值。

假设你的模型具有良好的精度,则校准曲线将单调增加。但这并不意味着模型已被正确校准。实际上,只有在校准曲线非常接近等分线时(即下图中的灰色虚线),您的模型才能得到很好的校准,因为这将意味着预测概率基本上接近理论概率。

python绘制预测模型中如何解决校准错误:

假设你已经训练了一个分类器,该分类器会产生准确但未经校准的概率。概率校准的思想是建立第二个模型(称为校准器),校准器模型能够将你训练的分类器“校准”为实际概率。

因此,校准包括了将一个一维矢量(未校准概率)转换为另一个一维矢量(已校准概率)的功能。

两种常被用作校准器的方法:

1、保序回归:一种非参数算法,这种非参数算法将非递减的自由格式行拟合到数据中。行不会减少这一事实是很重要的,因为它遵从原始排序。

2、逻辑回归:现在有三种选择来预测概率:普通随机森林、随机森林 + 保序回归、随机森林 + 逻辑回归。

‘捌’ 什么是精细三维全过程Python建模

建模的精细度精细三维全过程Python建模
初期建模的时候按照物体的细节在电脑中建模生成,并赋予恰当的贴图
建模,就是建立模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。建立系统模型的过程,又称模型化。建模是研究系统的重要手段和前提。凡是用模型描述系统的因果关系或相互关系的过程都属于建模。
因描述的关系各异,所以实现这一过程的手段和方法也是多种多样的。可以通过对系统本身运动规律的分析,根据事物的机理来建模;也可以通过对系统的实验或统计数据的处理,并根据关于系统的已有的知识和经验来建模。还可以同时使用几种方法。

阅读全文

与python三维hsv模型相关的资料

热点内容
吃鸡国际体验服为什么服务器繁忙 浏览:92
php中sleep 浏览:488
vr怎么看视频算法 浏览:84
手机app如何申报个人所得税零申报 浏览:692
如何截获手机app连接的ip 浏览:330
冰箱压缩机是否需要电容 浏览:344
python列表每一行数据求和 浏览:274
自己有一台服务器可以玩什么 浏览:656
社会学波普诺pdf 浏览:584
解压做食物的小视频 浏览:758
pdf怎么单独设置文件夹 浏览:474
业务逻辑程序员 浏览:659
addto新建文件夹什么意思 浏览:160
有服务器地址怎么安装软件 浏览:659
安卓如何完全清除数据 浏览:691
安卓安卓证书怎么信任 浏览:53
服务器被攻击如何解决 浏览:221
学霸变成程序员 浏览:882
c语言编译错误fatalerror 浏览:441
ipv4内部服务器地址怎么分配 浏览:464