Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何在角色垂直(而不是沿对角线)的图像中裁剪角色面片_Opencv_Image Processing - Fatal编程技术网

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。