上述代码只显示最外层边缘
时间: 2023-07-02 19:14:46 浏览: 53
是的,上述代码只显示了最外层的边缘,这是因为在 `cv2.findContours()` 函数中,使用了 `cv2.RETR_EXTERNAL` 参数来获取最外层的边缘。如果想要显示所有的边缘,可以使用 `cv2.RETR_LIST` 参数来获取所有的边缘,修改后的代码如下所示:
```
import cv2
import numpy as np
from dxfwrite import DXFEngine as dxf
img = cv2.imread('ft.jpg', 0)
edges = cv2.Canny(img, 100, 200)
thresh = cv2.threshold(edges, 27, 255, cv2.THRESH_BINARY)[1]
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
dwg = dxf.drawing('output2.dxf')
for contour in contours:
if len(contour) > 1:
dwg.add(dxf.polyline(contour[:, 0, :]))
dwg.save()
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行修改后的代码,会显示所有的边缘。
相关问题
bottomNavigationBar 显示在页面最外层
是的,bottomNavigationBar通常被放置在页面的最外层,位于屏幕底部,并提供导航选项卡供用户选择。它通常用于应用程序的主导航,例如在应用程序中浏览不同的页面或选项卡。bottomNavigationBar可以通过Flutter中的Scaffold Widget来实现。您可以在Scaffold的底部导航栏中设置bottomNavigationBar属性,以显示您的导航选项卡。
docker push只会push最外层镜像吗
根据提供的引用内容,Docker 镜像是由多个只读的文件系统层叠加在一起构成的,基础镜像层是这些层中的第一层。当使用 docker push 命令时,只会将最外层的镜像推送到 Docker Registry 中,而不会将镜像的所有层都推送。因为 Docker Registry 中已经存在的镜像层不会被重复推送,只有新的镜像层才会被推送。因此,只需要推送最外层的镜像即可。