普通网友 2023-09-17 19:41 采纳率: 33.3%
浏览 13

rror: (-215:Assertion failed) type == B.type() in function 'cv::gemm'

用的站内的,出这个问题,搜了说是格式不匹配也不知道有哪些要改

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-17 19:49
    关注

    引用 皆我百晓生 小程序回复内容作答:
    这个错误通常是由于矩阵类型不匹配引起的。当你使用 OpenCV 的 gemm 函数时,输入的矩阵必须具有相同的类型。

    要解决这个问题,你可以尝试以下几个步骤:

    1. 确保你输入的两个矩阵具有相同的类型。你可以使用 cv2.imread() 函数加载图像时指定 cv2.IMREAD_UNCHANGED 参数来保留原始的图像类型。
    img1 = cv2.imread('image1.jpg', cv2.IMREAD_UNCHANGED)
    img2 = cv2.imread('image2.jpg', cv2.IMREAD_UNCHANGED)
    
    1. 如果你手动创建了矩阵,确保它们具有相同的类型。你可以使用 np.array() 函数指定 dtype 参数来设置矩阵的数据类型。
    matrix1 = np.array([[1, 2], [3, 4]], dtype=np.float32)
    matrix2 = np.array([[5, 6], [7, 8]], dtype=np.float32)
    
    1. 检查 gemm 函数的参数是否正确,并确保矩阵的维度与期望的相同。你可以通过打印矩阵的形状来检查。
    print(img1.shape)
    print(img2.shape)
    print(matrix1.shape)
    print(matrix2.shape)
    
    1. 如果以上步骤都没有解决问题,可能是因为输入矩阵的维度不匹配。你可以尝试使用 cv2.transpose() 或 NumPy 的数组转置来调整矩阵的维度。
    img2 = cv2.transpose(img2)
    

    希望这些步骤能帮助你解决 gemm 函数的错误。如果问题仍然存在,请提供更多的代码和错误信息,以便我能更好地帮助你。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月17日

悬赏问题

  • ¥15 SQL Server下载
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求