最近opencv又报了啥错(一)

前言

别骂了别骂了,太久没打python,手贼生,最近在搞opencv和一些ocr,报了一堆错,有些是python的原生错误,有的是opencv的,有的是我nt,就全部记录一下吧

(1)bad argument type for built-in operation

(2)cv2.waitKey(0)在其他操作之前

会使整个操作一直维持在waitKey

(3)

cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\imgproc\src\morph.cpp:787: error: (-215:Assertion failed) _kernel.type() == CV_8U in function 'cv::MorphFilter<struct cv::MaxOp<unsigned char>,struct cv::MorphIVec<struct cv::VMax8u> >::MorphFilter'

在这里插入图片描述
下面这两个错都是我提取数字上出的问题,第一层是一个列表第二层是字典
列表是按照排列顺序进行查找,字典是按照key(val)找val(key)

(4)AttributeError: ‘int’ object has no attribute ‘text’

(5)TypeError: ‘int’ object is not subscriptable

(4)和(5)我出错都是因为数据类型出问题

(6)字典类型不能去除空格

使用的代码

    for i in range(0, len(result)):
        result[i]['text'].replace(" ","")
        print(result[i]['text'])

输出结果:
因为没有将结果传出来因此实际上调用的还是原先字典里面的,没能实现字典的val类型的去除空格
在这里插入图片描述
改成这样就ok了

		a=result[i]['text'].replace(" ","")
        print(a)

下面这两种方法好像也不行!!!

        # result[i]['text'].strip()
        # a=result[i].get("text").strip()

(7)local variable ‘devicecode’ referenced before assignment

当有多个输出时,一定要保证每个输出都有值

#多个输出
return [devicecode, boxcode, checkcode, sizecode]

我最后的解决办法挺c语言的就是说:

    if flag1==0:
        print("can't find devicecode")
        devicecode=None
    if flag2 == 0:
        print("can't find boxcode")
        boxcode=None
    if flag3 ==0:
        print("can't find checkcode")
        checkcode=None
    if flag4 == 0:
        print("can't find sizecode")
        sizecode = None
    return [devicecode, boxcode, checkcode, sizecode]

could not find a writer for the specified extension in function ‘cv::imwrite_’

没写扩展名!!!

ImportError: Bindings generation error. Submodule name should always start with a parent module name. Parent name: cv2.cv2. Submodule name: cv2

改成

import cv2

- merge() takes at most 2 arguments (3 given)

image=cv2.merge(h,s,v)
#上面这种是错的

#加上中括号
image=cv2.merge([h,s,v])
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值