端口设置,柴尔斯,龚庭鼻炎馆
使用opencv-python一段时间了,因为之前没有大量接触过c++下的opencv,在网上看c++的一些程序想改成python遇到了不少坑,正好在这里总结一下。
opencv中图像的x,y 坐标以及 height, width,rows,cols 他们的关系经常混淆。
rows 其实就是行,一行一行也就是y 啦。height高度也就是y啦。
cols 也就是列,一列一列也就是x啦。width宽度也就是x啦。
原因:和opencv不同,目前opencv-python中的数组均为numpy array形式。
在opencv-python中,有很多函数的应用方法都与opencv中不同,下面简单的分析一下最不同的地方
1)python中使用cv2.方法名或变量名来调用方法/变量
2)对于具有同样作用的函数的不同调用方法,例如
//c++
cvtColor(srcImg, binaryImg, COLOR_BGR2GRAY);
#python
binaryImg = cv2.cvtColor(srcImg,cv2.COLOR_BGR2GRAY)
当然对于每个具体的函数的具体用法,可以自行上网搜索
3)python中对于变量的类型是不需要声明的,所以将c++中代码修改为python时需要注意很多(缩进虽然很便于查看,但是还是感觉写{}的感觉很爽233)
4)python中函数参数可以为array形式,所以c++ opencv中的很多类型都是不存在的,切忌使用cv2.类型名()去使用,例如
//c++ circle(srcImg, Point(x, y), 3, Scalar(255, 0, 255), 2, 8, 0);
#python cv2.circle(srcImg, (x, y), 3, (255, 100, 255), 1, 8, 0)
其他的小坑估计还很多,多Google吧。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论