如何对多边形使用 polygonPointTest 函数?
How to use polygonPointTest function for a polygon?
我正在尝试 运行 多边形的多边形点测试函数。我的代码如下所示,是否仅适用于 coutours?
import ast
import cv2
import numpy as np
point1 = (25, 50)
t = "201.94,191.31;158.20,343.59;520.55,361.55;469.79,175.70" # closed polygon
pts = [*map(ast.literal_eval, t.split(';'))]
pts = np.array(pts)
cv2.pointPolygonTest(pts, point1, False)
我低于错误
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-454-bfdc7e835e9b> in <module>
----> 1 cv2.pointPolygonTest(pts, point1, False)
error: OpenCV(4.3.0) /io/opencv/modules/imgproc/src/geometry.cpp:103: error: (-215:Assertion failed) total >= 0 && (depth == CV_32S || depth == CV_32F) in function 'pointPolygonTest'
我正在使用不兼容类型的 np array
,将其转换为 np.int32
后,我可以获得所需的输出。
import ast
import cv2
import numpy as np
point1 = (25, 40)
t = "201.94,191.31;158.20,343.59;520.55,361.55;469.79,175.70" # closed polygon
pts = [*map(ast.literal_eval, t.split(';'))]
pts = np.array(pts, np.int32)
cv2.pointPolygonTest(pts, point1, False)
我正在尝试 运行 多边形的多边形点测试函数。我的代码如下所示,是否仅适用于 coutours?
import ast
import cv2
import numpy as np
point1 = (25, 50)
t = "201.94,191.31;158.20,343.59;520.55,361.55;469.79,175.70" # closed polygon
pts = [*map(ast.literal_eval, t.split(';'))]
pts = np.array(pts)
cv2.pointPolygonTest(pts, point1, False)
我低于错误
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-454-bfdc7e835e9b> in <module>
----> 1 cv2.pointPolygonTest(pts, point1, False)
error: OpenCV(4.3.0) /io/opencv/modules/imgproc/src/geometry.cpp:103: error: (-215:Assertion failed) total >= 0 && (depth == CV_32S || depth == CV_32F) in function 'pointPolygonTest'
我正在使用不兼容类型的 np array
,将其转换为 np.int32
后,我可以获得所需的输出。
import ast
import cv2
import numpy as np
point1 = (25, 40)
t = "201.94,191.31;158.20,343.59;520.55,361.55;469.79,175.70" # closed polygon
pts = [*map(ast.literal_eval, t.split(';'))]
pts = np.array(pts, np.int32)
cv2.pointPolygonTest(pts, point1, False)