Python-将ndarray类型转换为Dlib中rectangles类型

更新时间:2023-06-19 21:47:01 阅读: 评论:0

Python-将ndarray类型转换为Dlib中rectangles类型
问题⽐较简单,将ndarray类型转换为Dlib中rectangles类型,第⼀次写博⽂,说的不好的地⽅⼤家见谅,我也是记录⼀下这个问题
问题描述:
最近⼀直在⽤Dlib的⼈脸特征识别库来做项⽬,但是我发现如果你想⽤Dlib中的shape_predictor_68_face_landmarks.dat 模型来做⼈脸特征识别的话,在传⼊参数的时候代码如下:
face_encodings = np.matrix([[p.x, p.y]for p in lf.predictor(img_crop, faces[i]).parts()])
鱼头汤怎么做在取faces[i]时候,face的类型应该为rectangles类型,在Dlib中他也有⾃⼰的⼈脸识别模块,_frontal_face_detector() 他的返回值类型也为rectangles,但是他的⽬标检测模块不够完善,如果说⽤我们个⼈在python中训练的模型来做⽬标检测的话,⼀般的返回类型应该为np.ndarray 或者 opencv类型,如果想调⽤他的模型必须做类型转换,但是Dlib是采⽤的pyblind11,封装的c++的语⾔,做了python可调⽤的API,所以没办法做强转,⽽且angles的参数为:
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
1. _angles()
2. _angles(arg0: _angles)
3. _angles(arg0: iterable)
杯中物4. _angles(initial_size:int)
在我扒拉官⽅⽂档⽆果(主要还是看不懂英⽂),准备要放弃的时候,我随便试了⼀下⼀个⽅法,竟然成功了。
梦见旅游是什么意思解决⽅案:
⾸先呢,angles()可以⽆参直接调⽤,他的意思就是创建⼀个rectangles的对象, 这个对象⼜有⼀个⽅法叫append,这个可以向rectangles对象中添加⼀个rectangle类型的参数,还有⼀点前边忘说了哈哈哈,虽然rectangles对象不可以直接创建,但是rectangle 对象可以直接创建,也就是说我们可以先创建⼀个rectangle对象,然后创建⼀个空rectangles对象,之后append就可以了啦! 代码⽰例:
入口的英文# 这个bboxs只是⼀个例⼦,这个bbox只是⼀个1 * 4 的 np.ndarray数组
关于旅行的文案x1 = bboxs[0][0]
江苏大丰y1 = bboxs[0][1]
x2 = bboxs[0][2]男人茶
y2 = bboxs[0][3]
# 创建rectangle对象,四个参数分别为左上⾓点位置,与右下⾓点的位置
rectangle = angle(x1, y1, x2, y2)
# 创建⼀个rectangles空对象
faces = angles()
faces.append(rectangle)
print(type(faces))
#输出
孕妇可以喝汽水吗<class'_angles'>
好! 虽然很简单!就是提供⼀个思路,哈哈哈,因为我在⽹上查了好多都没有查到!我第⼀次写,说的不对的地⽅⼤家尽管给我指正,有问题随时问我(虽然我也不是很懂)

本文发布于:2023-06-19 21:47:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1046058.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   问题   对象   模型   时候   意思   创建   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图