<p>在Python/OpenCV中有一种方法可以做到这一点</p>
<ul>
<li>读取输入</li>
<li>将图像右侧和底部的白色边缘变黑</li>
<li>对图像设置阈值</li>
<li>应用形态学关闭以创建遮罩</li>
<li>得到轮廓</li>
<li>获取轮廓的边界框</li>
<li>在边界框处裁剪图像</li>
<li>保存结果</li>
</ul>
<p>输入:</p>
<p><a href="https://i.stack.imgur.com/2OVgX.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2OVgX.jpg" alt="enter image description here"/></a></p>
<pre><code>import cv2
import numpy as np
# load image
img = cv2.imread('diff_image.jpg')
# convert to gray
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# threshold input image
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)[1]
hh, ww = thresh.shape
# blacken right and bottom of image
thresh[hh-2:hh, 0:ww] = 0
thresh[0:hh, ww-1:ww] = 0
# apply morphology close
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (21,21))
mask = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)
# get contour
cntrs = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cntrs = cntrs[0] if len(cntrs) == 2 else cntrs[1]
c = cntrs[0]
# draw contour on input
contour = img.copy()
cv2.drawContours(contour, [c], -1, (0, 0, 255), 1)
# get bounding box coordinates of contour
x,y,w,h = cv2.boundingRect(c)
# crop input
result = img.copy()
result = img[y:y+h, x:x+w]
# save resulting masked image
cv2.imwrite('diff_image_threshold.jpg', thresh)
cv2.imwrite('diff_image_mask.jpg', mask)
cv2.imwrite('diff_image_contour.jpg', contour)
cv2.imwrite('diff_image_cropped.jpg', result)
# display result, though it won't show transparency
cv2.imshow("thresh", thresh)
cv2.imshow("mask", mask)
cv2.imshow("contour", contour)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()
</code></pre>
<p><br/>
阈值图像:</p>
<p><a href="https://i.stack.imgur.com/coqxT.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/coqxT.jpg" alt="enter image description here"/></a></p>
<p>形态闭合掩模:</p>
<p><a href="https://i.stack.imgur.com/UQPrU.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/UQPrU.jpg" alt="enter image description here"/></a></p>
<p>输入时绘制的轮廓:</p>
<p><a href="https://i.stack.imgur.com/am0Hm.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/am0Hm.jpg" alt="enter image description here"/></a></p>
<p>裁剪图像:</p>
<p><a href="https://i.stack.imgur.com/q75mR.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/q75mR.jpg" alt="enter image description here"/></a></p>