相关疑难解决方法(0)

删除图像中的水平线(OpenCV,Python,Matplotlib)

使用以下代码,我可以删除图像中的水平线。参见下面的结果。

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('image.png',0)

laplacian = cv2.Laplacian(img,cv2.CV_64F)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)

plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')
plt.title('Sobel X'), plt.xticks([]), plt.yticks([])

plt.show()
Run Code Online (Sandbox Code Playgroud)

结果

结果是非常好的,不是完美的但很好。我要实现的是这里显示的那个。我正在使用此代码

源图像 资源

我的问题之一是:如何保存Sobel X没有应用灰色效果的情况?作为原始但已处理..

另外,还有更好的方法吗?

编辑

对源图像使用以下代码是好的。效果很好。

import cv2
import numpy as np

img = cv2.imread("image.png")
img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

img = cv2.bitwise_not(img)
th2 = cv2.adaptiveThreshold(img,255, cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,15,-2)
cv2.imshow("th2", th2)
cv2.imwrite("th2.jpg", th2)
cv2.waitKey(0)
cv2.destroyAllWindows()

horizontal = th2
vertical = th2 …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing matplotlib computer-vision

8
推荐指数
1
解决办法
4783
查看次数

Python OpenCV HoughLinesP无法检测行

我正在使用OpenCV HoughlinesP来查找水平和垂直线.它大部分时间都没有找到任何行.即使它找到一条线,它甚至不接近实际图像.

import cv2
import numpy as np

img = cv2.imread('image_with_edges.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)


flag,b = cv2.threshold(gray,0,255,cv2.THRESH_OTSU)

element = cv2.getStructuringElement(cv2.MORPH_CROSS,(1,1))
cv2.erode(b,element)

edges = cv2.Canny(b,10,100,apertureSize = 3)

lines = cv2.HoughLinesP(edges,1,np.pi/2,275, minLineLength = 100, maxLineGap = 200)[0].tolist()

for x1,y1,x2,y2 in lines:
   for index, (x3,y3,x4,y4) in enumerate(lines):

    if y1==y2 and y3==y4: # Horizontal Lines
        diff = abs(y1-y3)
    elif x1==x2 and x3==x4: # Vertical Lines
        diff = abs(x1-x3)
    else:
        diff = 0

    if diff < 10 and diff is not 0:
        del lines[index]

    gridsize …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision houghlinesp

1
推荐指数
1
解决办法
2925
查看次数