Opencv 如何在角色垂直(而不是沿对角线)的图像中裁剪角色面片
我是图像处理的新手,遇到了一个问题。我在网上搜索了很长时间,但是没有用。你能帮助我吗?非常感谢 问题:在角色垂直的图像中裁剪角色面片。但通常在结果中,我得到的字符是沿着对角线的。我不知道如何克服它 这里有一个例子。我想得到一个由绿色框标记的补丁,但我通常得到由红色框标记的错误结果 我的处理程序:Opencv 如何在角色垂直(而不是沿对角线)的图像中裁剪角色面片,opencv,image-processing,Opencv,Image Processing,我是图像处理的新手,遇到了一个问题。我在网上搜索了很长时间,但是没有用。你能帮助我吗?非常感谢 问题:在角色垂直的图像中裁剪角色面片。但通常在结果中,我得到的字符是沿着对角线的。我不知道如何克服它 这里有一个例子。我想得到一个由绿色框标记的补丁,但我通常得到由红色框标记的错误结果 我的处理程序: 阅读图片 将其转换为单通道灰色图像 找到轮廓线 过滤轮廓以获得角色轮廓 根据过滤后的轮廓线检测最小面积矩形 代码如下: def processSingleImg(unresizedGrayImg):
- 阅读图片
- 将其转换为单通道灰色图像
- 找到轮廓线
- 过滤轮廓以获得角色轮廓
- 根据过滤后的轮廓线检测最小面积矩形
def processSingleImg(unresizedGrayImg):
unresizedGrayImg = cv2.blur(unresizedGrayImg, (3, 3))
unresizedGrayImg = equalizeHist(unresizedGrayImg)
unresizedGrayImg = cv2.blur(unresizedGrayImg, (3, 3))
edgeBinaryImg = cv2.Canny(unresizedGrayImg, 100, 220)
_, contours, h = cv2.findContours(edgeBinaryImg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
filteredContours = filterContourByAreaAndLength(contours)
miniRotaRects = detecteMiniRotaRect(filteredContours)
contoursImg = unresizedGrayImg.copy()
contoursImg = drawCharacterContour(filteredContours, contoursImg)
contoursImg = drawRotaRect(miniRotaRects, contoursImg)
cv2.imshow("rotateRect", contoursImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
你能给我一些提示吗?非常感谢
这里的示例图像是:您好,欢迎来到社区,我对您的问题的语言和格式做了一些小的调整。如果你能想到可以在问题中添加的任何其他标记(例如,正在使用的编程语言),我相信这也会有助于更快地找到答案。@Fabio Lolli谢谢你的好意。非常感谢。语言是python。这里的示例图像是:您好,欢迎来到社区,我对您的问题的语言和格式做了一些小的调整。如果你能想到可以在问题中添加的任何其他标记(例如,正在使用的编程语言),我相信这也会有助于更快地找到答案。@Fabio Lolli谢谢你的好意。非常感谢。语言是python。