python-3.x - 检测平面图中的墙壁
问题描述
我研究的主题是检测图像中的墙壁。所以我使用的方法是:
featur.Canny
skimage
我得到了这张图片FindContours
的OpenCV-python
但它根本没有检测到任何片段
导入部分:
import matplotlib.pyplot as plt
import skimage.segmentation as seg
import skimage.filters as filters
from skimage import feature
from skimage.segmentation import (morphological_chan_vese,
morphological_geodesic_active_contour,
inverse_gaussian_gradient,
checkerboard_level_set, mark_boundaries)
from skimage import data, img_as_float
import cv2 as cv2
编码:
img = cv2.imread(image_png, 0)
img_base = img
img = feature.canny(img, sigma=3)
dpi = 72
plt.figure(figsize=(9000/dpi, 9000/dpi), dpi=dpi)
plt.imshow(img, cmap="Greys", aspect="equal")
plt.axis("off")
plt.savefig("test_new_canny.png")
img = cv2.imread("test_new_canny.png", 0)
image_base = cv2.imread("./image_test/rdc.png", 0)
contours, _ = cv2.findContours(img, cv2.RETR_CCOMP , cv2.CHAIN_APPROX_SIMPLE )
contours = cv2.drawContours(image_base, contours, -1, (0,255,0), 3)
Image.fromarray(contours).save("test_contours.png")
你知道为什么检测不起作用吗?因此,我使用了第二种方法,Computes Felsenszwalb 的基于图形的高效图像分割,Skimage
我得到了一些小图像但算法永远无法完成处理的大图像。
有任何想法吗?