建网站需要软件,电脑维修 做网站,多钱网网站,h5网页制作代码今天发现了opencv一个好用的函数 cv2.pointPolygonTest() #xff0c;它可以判断一个点是否在指定区域内。
1. cv2.pointPolygonTest() 函数解析
dist cv2.pointPolygonTest(contour,point,Boolean)contour: 多边形轮廓
point: 坐标点
Boolean:True或False #xff0c;Tru…今天发现了opencv一个好用的函数 cv2.pointPolygonTest() 它可以判断一个点是否在指定区域内。
1. cv2.pointPolygonTest() 函数解析
dist cv2.pointPolygonTest(contour,point,Boolean)contour: 多边形轮廓
point: 坐标点
Boolean:True或False True返回距离值内部为正外部为负
dist 图像里的点和轮廓之间的最短距离轮廓外为负轮廓内为正轮廓上为02 . 代码示例
#设置多边形形状
pts np.array([[759,281],[894,300],[854,395],[692,350]],np.int32)
# print(pts)
#坐标点
point (814,339)
flag cv2.pointPolygonTest(pts, point, True) ##判断一个点是否在多边形内部pts:多边形的轮廓x,y坐标点True表示返回点到多边形边界的距离
if flag 0:cv2.putText(image,Within the boundary, (x,y),cv2.FONT_HERSHEY_COMPLEX,1,(255,0,255),3) #在多边形内
else:cv2.putText(image,Out of bounds, (x,y),cv2.FONT_HERSHEY_COMPLEX,1,(255,0,255),3) #不在多边形内print(flag) # 输出距离值3.reshape()
reshape() 是一个在 numpy 库中常用的函数用于改变数组的形状.
numpy.reshape(array, newshape, orderC)array需要被改变形状的数组。
newshape新的形状可以是整数元组或整数列表。
order可选参数默认为 C表示按行的 C 风格顺序对数组进行重塑。二维矩阵转换
import numpy as nparr np.array([[1, 2, 3], [4, 5, 6]]) #2行3列
new_arr np.reshape(arr, (3, 2)) #转换为3行2列
print(new_arr) ---array([[1, 2],[3, 4],[5, 6]])reshape(m,-1) #改成m行列数需要计算
reshape(-1,m) #改成m列行数需要计算三维矩阵转换
#3行4列的矩阵
z np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])转换为3维矩阵
z.reshape(-1,2,3)的结果
[[[ 1 2 3][ 4 5 6]][[ 7 8 9][10 11 12]]]
结果大小 (2, 2, 3)reshape(-1,m,n)#改成三维矩阵不知道几个小矩阵改成m*n的小矩阵
reshape(-1,2,2,3)#改成四维矩阵不知道几个小矩阵改成2个2*3的小矩阵