【Opencv实战】识别水果的软件叫什么?一款超好用的识别软件分享,一秒鉴定(真是活~久~见~啊)

导语

Hello,大家好呀!我是木木子吖~

一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。

听说关注我的人会一夜暴富发大财哦——不信你试试!

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

大家是不是发现现在的水果五花八门,特别是我们平常去超市或者水果店的时候,经常会

看到好多水果长相差不多,但是价格却相差十万八千里。

总是搞不清楚这些水果有什么区别,从而导致我们经常被不良小贩坑骗!这个时候有些人会利

用一些软件来识别水果的名称,今天小编教你自己用代码编写一款专属的水果识别小程序哦~

——小故事🍭

前几天木木子我逛超市,想买点水果走一下亲戚。进了超市一脸懵逼,贼多多的一摊摊水果不

认识。回家赶紧一通搜罗,熬夜写了一晚代码整理了这些常见水果知识,以绝后患😀.

正文

一、奇奇怪怪的水果

这些奇奇怪怪的水果都是从哪里冒出来的,涨姿势啊!!看看你认识几个呢?

1)奇奇怪怪的水果——荔枝vs黄皮

(图2 )黄皮和龙眼(图1)确实非常相似。加之两者的产区都是两广、海南、云南等最南的省

份,所以在生活里被错认是相当容易的事。

这种水果叫做黄皮,或者黄皮子。(图2)

不是黄皮子坟那个黄皮子,那是动物。估计我们的多半读者也没吃过这家伙,没吃过不要紧,

我们来说一说。博物嘛,格物致知,看就当吃。

2)奇奇怪怪的水果——菠萝vs凤梨

这两个水果我开始是傻傻分不清楚。现经查证菠萝就是凤梨,凤梨就是菠萝。只不过是台湾人

管菠萝叫凤梨。两者是同一个东西。我就简单的假装不知道凤梨的存在,叫菠萝就行了,毕竟

两岸始终是要统一的嘛。

3)奇奇怪怪的水果——蛇皮果

果如其名,果皮很像蛇皮,比较锋利,剥皮时小心割手。果味爽脆,味道独特,似菠萝,又似

榴莲。

其实生活中还有好多好多不认识的水果,马上进入今天的正题吧~

二、代码实战

1)环境安装

小编使用的环境:Python3、Pycharm社区版、opencv模块,部分自带就不一一 展示啦。 

 模块安装:pip install -i https://pypi.douban.com/simple/+模块名 

素材(图片) 可以自己随机找几张就可以需要识别的水果图即可啦。

2)思路讲解

 我们基于简单的opencv的阈值分割,通过这个阈值分割,我们能把我们需要识别的物体在二

值图里面变成白色,其余的变成黑色。然后对我们分割出来的物体部分提取轮廓,算出覆盖轮

廓的最小矩形,然后画出这个矩形框,并且表上我们物体的名字。

3)测试图片

首先我们读入一张橙子的图片,因为opencv默认读入的图片是bgr的形式,我们用的是hsv的颜色

阈值,因此我们要将图片转换到hsv。然后经过一个中值滤波去除噪声,再经过一个开运算。

image=cv2.imread("c4.jpeg")hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)hsv = cv2.medianBlur(hsv, 5)mask = cv2.inRange(hsv, (11, 43, 46), (25, 255, 255))line = cv2.getStructuringElement(cv2.MORPH_RECT, (15, 15), (-1, -1))mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, line)

其中cv2.inRange会将图片中hsv值在(11, 43, 46),和(25, 255, 255)中间的值变成白色,不在中

间的值变成黑色。最后咱们处理好的二值图如下:

然后就是提取轮廓,求出最大轮廓,这个最大轮廓也就是我们的橙子

contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)    index = -1    max = 0    font = cv2.FONT_HERSHEY_SIMPLEX    for c in range(len(contours)):        area = cv2.contourArea(contours[c])        if area > max:            max = area            index = c

随后就是对这个橙子的轮廓求外接矩形,然后把这个矩形画出来,并且再对应的位置上标上orange。

    if index >= 0:        x, y, w, h = cv2.boundingRect(contours[index])        cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)        cv2.putText(image,"orange",(x, y), font, 1.2, (0, 0, 255), 2)

4)主程序

import cv2

def process(image):
  #面积阈值
    min_area=100
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    hsv = cv2.meianBlur(hsv, 5)
    mask = cv2.inRange(hsv, (11, 43, 46), (25, 255, 255))
    line = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5), (-1, -1))
    mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, line)
    cv2.imshow("mask",mask)


    contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    font = cv2.FONT_HERSHEY_IMPLEX
    for c in range(len(contours)):
        area = cv2.contourArea(contours[c])
        if area > min_area:
        # 绘制
            x, y, w, h = cv2.boundingRect(contours[c])
            cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.putText(image,"orange",(x, y), font, 1.2, (0, 0, 255), 2)
    return image


image=cv2.imread("c1.jpeg")
result = process(image)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、效果展示

1)橘子orange

2)香蕉banana

3)苹果apple

总结

世界这么大,快来都看看!不然连水果都不认识啦!哈哈哈——安啦!

这款水果识别小工具到这里就正式结束啦,记得偷偷点个关注哦,我保证发现你。嘿嘿

我可真是个小机灵鬼儿。想要资料的,老规矩撒自己来拿 免费滴哈👇

🎯完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!

🔨推荐往期文章——

项目3.1    抠图神器

【爆赞】这款Python小程序自动抠图只需5秒,秒杀PS手动抠图?

项目2.8  黑白上色技巧

OpenCv之黑白上色小技巧,奥黛丽赫本神颜,超惊艳滴~

项目1.1  动漫化人物

【突破次元壁】谁说二次元离我们遥远?Python特效火遍全网,关键技术原来是它。

项目1.2  颜值打分系统

Python小测试 2021最新男女颜值打分小系统标准出炉,看哭无数人...

🎄文章汇总——

汇总合集  Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~)

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾木子吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值