我有这张由Microsoft Word Office制作的边框照片:
我想删除Microsoft Word Office的边框,如下所示:
我尝试使用此代码但无法正常工作:
img = cv2.imread('border.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 1, 255, cv2.THRESH_BINARY)
_,contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours[0]
x, y, w, h = cv2.boundingRect(cnt)
crop = img[y:y + h, x:x + w]
cv2.imwrite('border.png', crop)
cv2.imshow("Rotated", crop)
cv2.waitKey(0)
那么我怎么能用opencv和python来做呢?
答案 0 :(得分:0)
我认为最简单的方法就是像你一样使用投资回报率。
cv::Mat workingRegion = img(cv::Rect(x_coord,y_coord,width,height), img.type());
在使用Microsoft等软件创建的图像中,在线边框始终位于图像的同一部分。你可以把它剪掉。
要检测边界,我会使用OTSU阈值
cv::threshold(img,img,100,255, CV_THRESH_OTSU);
我会产生更好的结果。添加一些图片,这样我可以更好地帮助你。