Python OpenCV-应用Hough线变换后的裁剪图像

Python OpenCV-应用Hough线变换后的裁剪图像,python,image,opencv,image-processing,transform,Python,Image,Opencv,Image Processing,Transform,我在使用OpenCV和Python时遇到了问题,我是这项技术的新手。只是一些问题,应用Hough线变换后如何裁剪图像 这是我的照片。我想用那些有红线的人来裁剪图像 这是我裁剪图像的代码,我知道有问题 minLineLength = 100 maxLineGap = 10 rho = 1 theta = np.pi/180 threshold = 190 lines = cv2.HoughLines(opened, 1, np.pi/180, threshold) for line in lin

我在使用OpenCV和Python时遇到了问题,我是这项技术的新手。只是一些问题,应用Hough线变换后如何裁剪图像

这是我的照片。我想用那些有红线的人来裁剪图像

这是我裁剪图像的代码,我知道有问题

minLineLength = 100
maxLineGap = 10
rho = 1
theta = np.pi/180
threshold = 190
lines = cv2.HoughLines(opened, 1, np.pi/180, threshold)
for line in lines:
    for rho,theta in line:
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 1000*(-b))
        y1 = int(y0 + 1000*(a))
        x2 = int(x0 - 1000*(-b))
        y2 = int(y0 - 1000*(a))
        cv2.line(image, (x1, y1), (x2, y2), (255, 0, 0), 2)
        cropped = image[100:200, 500:640]

我真的需要你们的帮助,伙计们

我尽力了,但这是我能做到的最接近的了

我使用单应性变换图像,如下所示:

#4 corner points of the image:
pts_src = np.array([[40.0, 124.0],[1017.0, 169.0],[960.0, 712.0],[60.0,697.0]])

#4 corner points of the white background to be transformed on:
pts_dst = np.array([[0.0, 0.0],[960.0, 0.0],[960.0, 575.0],[0.0, 575.0]])

#Obtain the homography matrix 'h':
h, status = cv2.findHomography(pts_src, pts_dst)

#Performing warp transform:
im_out = cv2.warpPerspective(img, h, (white.shape[1],white.shape[0]))
cv2.imwrite("Warped Source Image.jpg", im_out)

####然后我表演了Canny edge:

grayw = cv2.cvtColor(im_out,cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(grayw,50,255)
cv2.imwrite("canny Image.jpg", canny)


使用
cv2.HoughLines
执行后续的测线步骤可能会容易得多。如果没有,请更改代码中给定的
cv2.Canny(grayw,50255)
行中的阈值。

您能上传原始图像吗?@JeruLuke这是原始图像。谢谢@JeruLuke。我要试试这个!无法遵循您的代码@JeruLuke。我得到一个未解析的
(white.shape[1],white.shape[0])
在它前面加上这些行:
white=np.zero((575960,3),np.uint8)
后面跟着
white[:]=(255,255,255)
好的,我会试试@JeruLuke。谢谢你的纠正你好,杰鲁鲁克。它现在很有魅力:)非常感谢!还有一个问题。。。我能在结果中裁剪每一本书吗?还是有办法?