OpenCV

大象笔记 > 标签 > OpenCV

基于 OpenCV 的图像识别项目,开发环境的选择

朋友想让我实现一个农业相关的麦苗识别功能。我目前想基于 OpenCV 来实现。 但是由于我使用的是 Windows 10 + WSL Ubuntu 的开发机,所以纠结了一下开发环境的选择。 需求 你估计一下吧,不行先识别一个数苗的? 这几个图最先整吧 (麦苗),麦子6月收,产量后面再拍,这个期间慢慢识别 OpenCV 识别绿叶 https://stackoverflow.com/questions/9374747/optimal-approach-for-detecting-leaf-like-shapes-in-opencv 在这个讨论里,发现了一个专门做植物识别的库 PlantCV ...

阅读全文...

《OpenCV 轻松入门:面向 Python》读书笔记

上个月为了学习 PlantCV 做植物图像识别,就找了本 OpenCV 的书《OpenCV 轻松入门:面向 Python》作为基础入门。这本书浅显易懂,非常适合像我这样的 OpenCV 新手阅读。很快翻完,了解了不少基础概念,对看懂代码非常有帮助。今天跟我联调 MQTT 的同事被抓去车间干苦力,闲来无事,我就把这本书的笔记整理了一下。 二值图像 二值图像是指仅仅包含黑色和白色两种颜色的图像。 这种格式下,可以把一张图片理解为只包含 0 或 1 值的二维矩阵。 在 OpenCV 中,最小的数据类型是无符号的8位数。因此,在OpenCV中实际上并没有二值图像这种数据类型,二值图像经常是通过处理 ...

阅读全文...

Python EasyGUI 调起文件选择窗口

由于 opencv 做图像识别需要测试大量的图片样本,逐一比对效果,以方便调整参数及处理逻辑。 如果写死文件路径,每次换图片都需要改代码,非常不方便;也不利于代码管理。 所以,我需要能用 python 调起文件选择窗口,选择图片,然后返回文件路径。 EasyGUI 找到一个非常合适的库,EasyGUI。很容易拼错成 EasyUI。 EasyGUI is a module for very simple, very easy GUI programming in Python. EasyGUI is different from other GUI libraries in that Easy ...

阅读全文...

OpenCV 图像阈值转换,灰度图变为二值图

thresholding (阈值转换) 名词,中文翻译为: 阈值转换法;阈值。 image thresholding,这个词看起来比较抽象,但是结合使用场景,就非常好理解了。 其用在, 将灰度图转换为二值图。 二值图像是指仅仅包含黑色和白色两种颜色的图像。这种格式下,可以把一张图片理解为只包含 0 或 1 (255) 值的二维矩阵。 灰度图 (grayscale image) 将灰度处理为256个灰度级。而不是简单的 0 或 255 两个值。 而有了二值图,就可以方便的进行自动绘制轮廓。所以,图片阈值转换操作非常有价值。 image thresholding 的三种方法 simple t ...

阅读全文...

OpenCV 进行图片压缩

图片压缩的必要性 opencv 处理后的图片非常大,例如一个 200K 的 jpg,处理后保存为 PNG,文件体积变为 1.8M。 如果是本地处理倒是没有什么问题,但是如果是在服务端进行处理,那么每次下载都会造成极大的带宽浪费。 同时也造成了磁盘空间的压力。 所以,还是有必要进行图片压缩操作的。 OpenCV 压缩函数 PNG 压缩 cv2.imwrite('compress_img1.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 9]) https://docs.opencv.org/4.x/d8/d6a/group__imgcodecs__flags ...

阅读全文...