首页 > 解决方案 > 检测平面图中的墙壁

问题描述

我研究的主题是检测图像中的墙壁。所以我使用的方法是:

  1. featur.Cannyskimage我得到了这张图片
  2. FindContoursOpenCV-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 我得到了一些小图像但算法永远无法完成处理的大图像。

有任何想法吗?

标签: python-3.ximage-processing

解决方案


推荐阅读