农业与民生和经济发展息息相关,对农业发展科学化的关注既是民生需求,
也是经济稳步发展的迫切需求。病虫害是影响农作物生长的重要因素,对农作物的产量和品质都能造成无法估计的损害。
-
针对目前广大农业产区农业植保人员稀缺、病虫害识难度大等问题,论文在当前已有的研究基础上进行设计,提出了一套基于机器视觉的远程害虫种类识别
和数量检测系统,该系统能够在农业产区进行害虫捕杀和图像采集,同时将昆虫 图像上传到虫类鉴别服务器进行昆虫识别。
论文以机器视觉为核心,利用 OpenCV 开源视觉库,研究和实现了昆虫识别的完整流程。论文
研究的内容主要包括:
论文对基于机器视觉的昆虫种类及数量检测机制进行了研究,并在此基础实
现了昆虫的识别和计数。
PC 上的昆虫分类识别软件为了能够对本次设计进行原理论证和测试,使用 Python 作为编程语言,开发了一款在 Windows10 上运行的软件。具体程序界面如图 2.7 所示:
界面中包括:一个用以预览摄像头的窗口,一个用来显示处理之后图像的窗口,一个用来显示识别结果的标签和一个用来点击进行拍照的按钮。
图 2.8 介绍了论文设计的分类识别软件的运行过程。
。
。
gray(?, ?) = 0.30 ? ?(?, ?) + 0.59 ? ?(?, ?) + 0.11 ? ?(?, ?) (3.1)
图灰度化后的样本图片,如图 3.3 所示。
苍蝇粘板数目检测的实际效果图如图 3.6 所示,
设计的创新点在于:
(1) 针对农业产区广泛存在的农业害虫检测识别问题,提出了一种基于机器 视觉的害虫种类及数量检测方案。
(2) 在参考已有的论文的理论基础之上,提出了针对每一个昆虫形态特征的 提取方案。
(3) 在进行分类器训练时,引入了多种分类器算法,并进行训练和测试,能 够在比较分析结果后选择较为理想的分类器算法作为实际使用时的算法。
(4) 开发了一套基于 PC 机的识别软件,能够使用摄像头拍着昆虫图片的方 式进行昆虫的识别。
# 全部代码 ------> qq1309399183
# 先读图,然后二值化,通过找轮廓来进行计数
import cv2
import numpy as np
from matplotlib import pyplot as plt
origin = cv2.imread('picture/ttt.png')
RiceImg = cv2.imread('picture/ttt.png', 0)
blur = cv2.GaussianBlur(RiceImg, (5, 5), 0)
# 大津法二值化:此处可以用原理代码来巴拉巴拉一大段
ret, otsu = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# 输出阈值
print ret
# 找轮廓
contours = cv2.findContours(otsu, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
num = len(contours[1])
print num
# 画轮廓
cv2.drawContours(origin, contours[1], -1, (0, 0, 255), 1)
cv2.putText(origin, 'Insect Num: ' + str(num), (1, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (50, 50, 50), 2, cv2.LINE_AA)
cv2.namedWindow('RiceO', cv2.WINDOW_AUTOSIZE)
cv2.imshow('RiceO', origin)
cv2.imwrite('picture/tttresult.jpg',origin)
k = cv2.waitKey(0)
# 'ESC'
if k == 27:
cv2.destroyAllWindows()