点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

引子

最近一直在用PyQT跟python-opencv做开发,正好需要固定阈值二值化,于是我就随手写下了如下的代码片段:

image[image > t] = maxval
image[image <= t] = 0

这波常规操作我给自己满分,后来别人跟我说可以根据阈值反向分割,就是大于阈值T赋值为0,小于阈值T赋值为maxval于是,我就给它加了个if else操作,代码如下:

if bin_type == 0:image[image > t] = maxvalimage[image <= t] = 0
else:image[image > t] = 0image[image <= t] = 255

感觉这代码写的满分,于是我调试的时候,输入一张灰度图像,只要我选择bin_type=0总是正确执行二值化,只要我输入bin_type=1就一片白色。我测试了几张图像之后感觉有点怀疑人生了,逻辑这么好的代码,居然不正确执行!

一、真相让我崩溃

这个问题当时让好郁闷,感觉自己智商出问题了!于是我就手动写下了如下代码:

test = np.zeros((8, 8), dtype=np.uint8)
for i in range(8):test[i, 0] = i * 32test[i, 1] = i * 32test[i, 2] = i * 32test[i, 3] = i * 32test[i, 4] = i * 32test[i, 5] = i * 32test[i, 6] = i * 32test[i, 7] = i * 32
print(test)test[test > 122.2335] = 0
print("output1\n",test)
test[test <= 122.2335] = 255
print("output2\n", test)

打印输出结果:

我终于破案了!

原来我第一次赋值image[image>T] = 0时候导致没有大于T的了,然后再执行image[image<T]=255,居然就全部255,当然都是白色了。智商受到了碾压!后来我还想起了很久以前,我从github上面下载有个别人的项目,他的代码里面也有类似的写法,我记得我当时调试发现这段代码不工作,因为当时项目代码很长,我就保存图像发现不正确,就用opencv-python的cv.threshod函数把它替换了!我晕!

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

OpenCV-Python我刚写六行代码就出了个惊天BUG相关推荐

  1. 程序员刚写完代码 , 就被开除了,网友笑到抽筋

    程序员这行业可能对于一般人来说,你不入这行,是不懂行里的门道的.互联网行业的迅猛发展,很多人都选择加入到程序员这个群体中来,现在很多人都说该行业呈饱和状态,毕竟一年百万级的程序员加入进来. 一般程序员 ...

  2. python怎么读取github_六行代码获取Github排名前10的Python项目

    六行代码获取Github排名前10的Python项目 Github开放了不少API.下面是对这些API的一个使用. # 获取返回信息 import requests as r url="ht ...

  3. 程序员刚写完代码 , 就被开除了

    最近在网上看到的两段"写完代码就被公司开除"的代码,说是网上写完这段代码,就被老板开除了. 1.第一段代码 这位程序员写完这段代码,觉得自己被开除是因为没有写注释,看到这里不禁笑出 ...

  4. python动态爱心曲线_python代码画出爱心曲线

    Python的拿手好戏是解决数据分析和可视化问题,本篇文章给大家分享的是python代码画出爱心曲线的操作详解,内容挺不错的,希望可以帮助到有需要的朋友. 先不急着画爱心线,来看如何画函数曲线. 例如 ...

  5. 刚写的代码,就变成了遗留系统?

    今天想跟大家聊聊遗留系统,首先,看一下这张图 这是一家银行的核心应用系统模块之间的交互图,我想没有一个人愿意工作在这样的系统上吧? 架构混乱,模块之间职责不明,一个需求就要需要修改四五个服务,这就是遗 ...

  6. python大神写的代码_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...

    报错内容如下: Traceback (most recent call last): File "E:\Python27\setup.py", line 16, in from s ...

  7. python大神写的代码_【python】抄写大神的糗事百科代码

    importurllib.requestimporturllib.parseimportreimporttime#糗事百科爬虫类 classQSBK:#初始化方法,定义一些变量 def __init_ ...

  8. Python Django手写分页代码

  9. python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

最新文章

  1. WSL 使用者仍应该使用杀毒软件
  2. React系列---Redux高阶运用
  3. python错误代码提示手册_python学习手册笔记——33.异常编码细节
  4. innodb行锁理解
  5. mysql的字符集编码_MySQL的字符编码设置
  6. 创业期的软件开发管理(二)
  7. jQuery Mobile组件
  8. 检查PHP扩展是否安装成功
  9. keil4 新建stm32工程
  10. 控制策略 | PI控制器积分分离的仿真分析
  11. 关于英语前缀和后缀的区别
  12. 抢跑俞敏洪,教培人“玩命”直播
  13. PyOpenPose编译与使用
  14. java火车票售票系统_基于java的火车票售票系统,界面Swing
  15. Secret Milking Machine POJ - 2455
  16. 【读书笔记】《微习惯:瘦身篇》
  17. 非正弦周期信号的傅里叶级数展开式
  18. Hystrix之四种触发fallback情况
  19. 根据两个坐标系对应点计算转换关系(旋转和平移)
  20. get几个小技能:轮播图插件、进度条插件、筛选过滤插件

热门文章

  1. 170亿参数加持,微软发布史上最大Transformer模型
  2. 4种最常问的编码算法面试问题,你会吗?
  3. 十大经典排序算法动画与解析,看我就够了
  4. 首发 | 用声音改变生活,标贝科技完成 A 轮 5000 万人民币融资
  5. 波士顿动力机器人逆天,人类已无法阻挡它的三级跳!
  6. 为什么 HashMap 加载因子一定是0.75?而不是0.8,0.6?
  7. Hutool,一个贼好用的 Java 工具类库,用过都说好~
  8. 这可能是把策略模式讲的最通俗易懂得文章了!
  9. 支付宝架构师眼中的高并发架构
  10. ​2012年至今,细数深度学习领域这些年取得的经典成果!