我有以下图片预处理:
现在我想使用 private void updateAndroidSecurityProvider() {
try {
ProviderInstaller.installIfNeeded(this);
} catch (Exception e) {
e.getMessage();
}
}
方法从图像中查找单元格,然后使用compile 'com.google.android.gms:play-services-auth:11.8.0'
按顺序为图像中的每个单元格绘制轮廓。我这样做但没有显示任何内容。
findContours
我收到以下错误。
轮廓不是一个numpy数组,也不是标量
另一个答案对我没有帮助。
我也使用以下解决方案。
drawContours
但是这个解决方案并没有在给定的图像上绘制任何东西。
答案 0 :(得分:2)
更新,OpenCV 4.0更改cv2.findContours
。所以我修改了代码示例。还有一个更通用的方法:
cnts, hiers = cv2.findContours(...)[:-2]
cv2.findContours
返回一个元组,而不仅仅是轮廓。你可以这样做:
## Find contours
if cv2.__version__.startswith("3."):
_, contours, _ = cv2.findContours(bimg.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
else:
contours, _ = cv2.findContours(bimg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
## Draw contours
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
相关的类似问题:
(1)Python Opencv drawContour error
(2)How to use `cv2.findContours` in different OpenCV versions?
答案 1 :(得分:1)
cv2.findContours
返回的元组的格式为(im, contours, hierarchy)
,其中im
是带有可视化轮廓的图像,contours
是两个numpy数组的元组,格式为{{1} 1}}和(x_values, y_values)
取决于检索模式。由于您使用的是CV_RETR_EXTERNAL,heirarchy
并没有多大意义。