imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective‘(代码片段

Posted 修炼之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective‘(代码片段相关的知识,希望对你有一定的参考价值。

错误缘由

在使用opencv做透视变换的时候报error: (-215:Assertion failed) _src.total() > 0 in function 'warpPerspective',错误的详细信息如下

cv2.error: OpenCV(4.4.0) /tmp/pip-req-build-dglzv4yn/opencv/modules/imgproc/src/imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective’

透视变化的代码如下:

def clip_image(img,points):
    if isinstance(points,list):
        points = np.array(points,dtype=np.float32)
    img_crop_width = max(np.linalg.norm(points[0] - points[1]),
                         np.linalg.norm(points[2] - points[3]))
    img_crop_height = max(np.linalg.norm(points[1] - points[2]),
                          np.linalg.norm(points[0] - points[3]))
    pts_std = np.float32([[0,0],[img_crop_width,0],[img_crop_width,img_crop_height],[0,img_crop_height]])
    M = cv2.getPerspectiveTransform(points,pts_std)
    dst_img = cv2.warpPerspective(img, M, (img_crop_width, img_crop_height), borderMode=cv2.BORDER_REPLICATE,
                                  flags=cv2.INTER_CUBIC)
    dst_img_height, dst_img_width = dst_img.shape[0:2]
    if dst_img_height * 1.0 / dst_img_width >= 1.5:
        dst_img = np.rot90(dst_img)
    return dst_img

错误原因分析

出现这种错误的原因可能有三种:

  • 检查img是否为None
  • 检查points坐标中是否出现负数
  • 检查pointspts_std点的顺序是否一致

以上是关于imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective‘(代码片段的主要内容,如果未能解决你的问题,请参考以下文章

imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective‘(代码片段

jquery error()方法 语法

56_异常处理error,errors和painc的使用

SQUASHFS ERROR

Error 500

新浪微博Error_code: 400; Error: 40022:Error: source paramter(appkey) is missing的解决方法