论文部分内容阅读
摘 要:在OpenCV框架下的python 3环境中,开发了一种处理红枣病害叶片图像的技术,通过提取红枣病害区域HSV色彩空間分离H、S、V通道颜色分量图,经过灰度变换得到3个灰度图像,对灰度图像进行腐蚀、膨胀形态学处理,去噪后再进行平滑及阈值分割操作,最终获得较佳的红枣叶片病斑区域的分割方法。结果表明,基于HSV色彩空间的病斑分割方法能够有效地提取红枣叶片的病害特征,为机器视觉在红枣病虫害识别的应用中提供了依据。
关键词:OpenCV-Python;HSV色彩空间;阈值分割;图像处理
中图分类号 S436 文献标识码 A 文章编号 1007-7731(2020)04-0085-03
Abstract: In the python 3 environment under the OpenCV framework, a technology for processing leaf image of red jujube disease leaves has been developed. H, S, and V channel color component maps are separated by extracting the HSV color space of the red jujube disease area. For gray-scale images, the gray-scale images are etched and expanded morphologically, and then smoothed and thresholded after denoising. Finally, a better method for segmenting the diseased area of the jujube leaves is obtained. The results show that the lesion segmentation method based on HSV color space can effectively extract the disease characteristics of red jujube leaves, and provide a research basis for the application of machine vision in the identification of jujube diseases and insect pests.
Key words: OpenCV-Python; HSV color space; Threshold segmentation; Image processing
红枣最早产自于中国北部地区,核小肉密,食其甘甜可口,不仅具有改善缺血、胃酸过多、焦虑失眠等症状的效果,也是天然补充维生素的良品。我国每个省市基本都有种植分布,生产制造的红枣及相关产品占据着97%以上世界市场,2017年中国红枣的年产量已超过800万t[1]。
但由于近些年急速扩大红枣的种植规模,和农民相对滞后的综合管理能力,致使病虫害的发生频率增高,也滋生了新的枣病虫害种类,病虫害的威胁已经严重影响到红枣品质和产量提升,损害果农的切身利益[2]。目前,枣病虫害的治理主要还是靠人工,不仅需要投入大量的时间、精力和资金维系,耗时耗力,也不能及时高效的对病虫害发生进行监测,错过最佳的防治时机,从而出现农药滥用或使用不适时的情况,增加人工物料成本。为此,本文提出一种在OpenCV3-python3开发环境下基于HSV色彩空间的红枣病斑的分割方法,利用拥有丰富成熟开源库函数的python编程语言和OpenCV框架对病斑区域红枣叶片进行图像处理,并有效的分割,以期为红枣的病虫害识别做好前期工作和实验依据,是机器视觉代替人眼视觉在枣病虫害的防治方面的一次探索。
1 操作环境的搭建
1.1 硬件环境 固有的硬件条件为:处理器:英特尔Core [email protected]四核(自带核显);主板:华擎Z270 Killer SLI(Z270芯片组);内存:12GB(GLOWAY DDR4 2400MHZ 4G/记忆科技DDR4 2666MHz 8G);主硬盘:三星MZVLW128HEGR-000H1(128GB/固态硬盘);副硬盘:西数WDC WD10EZEX-08WN4A0(1TB/机械硬盘);显卡:AMD Radeon RX 470(4GB/迪兰恒进);显示器:联想LEN60ED LS2224(21.7英寸)。
1.2 软件环境 本次软件环境基础为Windows 10(64bit)操作系统,并且所有本研究应用软件均为windows版本。
(1)下载Anaconda基于python3.7的64bit版本(https://www.anaconda.com/download/),根据自己的需求选择安装路径,并将Anaconda3文件下的Scripts目录和Library\bin目录路径添加至环境变量Path下,以保证应用程序进程更好的运行。
(2)安装集成开发环境IDE(Integrated Development Environment),采用的IDE是微软官方的Visual Studio2017代码编程软件,也可用Anaconda中自带的IDE-Jupyter Notebook,用来编写、运行代码,并快速的调试和纠错。
(3)进入网址(https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv)下载与python 3.7相对应opencv版本的whl文件,在Anaconda Prompt命令窗口的Anaconda3文件目录下输入:pip install opencv_python?4.1.2+contrib? cp37? cp37m?win_amd64.whl. (4)继续输入:pip install opencv_python?4.1.2?cp37? cp37m?win_amd64.whl.
(5)在命令窗口中输入python进入python环境后,再输入improve cv2,无报错即说明已完成OpenCV的安装,到这一步基本的OpenCV-Python操作环境就搭载成功了。
2 实际操作流程
2.1 样本准备 通过扫描仪扫描或相机拍摄采集高清的红枣叶片图像作为实验样本,将提取红枣叶片的病斑部位,进行图像处理操作,如图1所示。
2.2 HSV色彩空间 色彩几乎可以用任意的基色集合来定义,可以将色彩表达为颜色分量的3或4个数值元组,在研究与应用中,产生了不同的基色与之相对应的色彩空间。常见的色彩空间有XYZ、RGB、YIQ、CMY、LAB、HSV、HSL等,可在比色学计算、存储、编码、彩色电视机、色彩差别、分析、色彩感知、计算机图形学等不同的场景进行应用[3]。
HSV色彩空间即色调(Hue)、饱和度(Saturation)、值(Value)(其中V值就是亮度(brightness),因此HSV也可称作HSB)与常用的RGB空间的混合三原色原理不同,HSV空间有效地分离了色度、饱和度和亮度,更适合于对人类色彩感觉的描述,在图像处理中也有更加明显的优势[4]。
将提取的病斑原始图像(图2)输入OpenCV-Python中对RGB的转换得到HSV并分离H、S、V3个通道(如图3),设r、g、b分别是单个颜色为红、绿、蓝的坐标,它们的值都是0~1之间的实数,设m为r,g,b中的最大值,设n为r,g,b中的最小值,公式为:
一般HSV取值范围为:色调为0~360°,饱和度为0~100%,亮度值为0~255,但在OpenCV中,对于HSV,色调范围为[0,179],饱和度范围为[0,255],亮度值范围为[0,255]。
2.3 灰度化 灰度图像是指图像矩阵元素的常见取值范围为整数,并且其区间在[0,255],另外还有在用[0,1]区间的小数来表示灰度值[5]。从白色到黑色不同深浅明暗像素过渡将彩图中更多的梯度细节信息保留了下来,大幅度的提升了运算速率,也降低了矩阵维数。由OpenCV-Python自带的cvtColor转换函数运算获得(图4)
2.4 形态学处理 膨胀(扩张)、腐蚀(侵蚀)、开运算、闭运算是几种基本的形态学运算,膨胀图像相当于对其反色图像腐蚀后再取反色,作用是把图像周围的背景点合并:到物体中,膨胀的运算符为,A用B来膨胀,写作A+B,定义为[6]:
腐蚀是膨胀的反运算,腐蚀图像相当于对其反色图像膨胀后再取反色,它的作用是消除物体边界点,可以把小于结构元素的物体去除,选取不同大小的结构元素可以去掉不同大小的物体,运算符为[Θ],A用B来腐蚀,写作A[Θ]B,定义为[6]:
2.5 平滑去噪 图像进行平滑处理能够有效消除噪声,本文采用一种能够减少边缘模糊的非线性平滑方法-中值滤波,将形态学闭运算处理过的H、S、V图像在进行中值滤波处理(滤波窗口为3x3)效果如图6所示。
2.6 阈值分割 阈值分割是图像分割中的常用分割方法,根据目标图像与其背景的灰度梯度,设置阈值将不同像素块进行分类,最终实现目标与背景的分离,本文采用的是OpenCV库中自带的Otsu算法函数对图6中中值滤波处理过的H、S、V分量图进行分割,再经过二值化处理后得到图7。
3 结论
本文通过在OpenCV-Python环境中的图像处理操作工作,提出一种基于HSV色彩空间红枣叶片病斑分割方法,经过实验分别对HSV色彩模型的H、S、V3个分量图分别进行常规处理,通过结果对比来看,HSV-H分量图的最终分割效果初步能满足对叶片病斑区域的分割要求,也凸显了OpenCV-Python的易用性与高效性,为后续进一步推进红枣叶片病害识别工作奠定基础。
参考文献
[1]2017-2018年全球红枣产量产业规模及增长情况统计回顾[EB/OL].中国产业信息网.http://www.chyxx.com/industry/201807/663171.html,2018-7-27.
[2]冯宏祖,王立生.新疆枣园病虫草害诊断与防治原色图谱[M].五家渠:新疆生产建设兵团出版社,2012:1.
[3]Milan Sonka,Vaclav Hlavac,Roger Boyle,著.图像处理、分析与机器视觉(第4版)[M].兴军亮,艾海舟,等译.北京:清华大学出版社,2016:25-27.
[4]韩丽娜,熊杰,耿国华,等.利用HSV空间的双通道同态滤波真彩图像增强[J].计算机工程与应用,2009,45(27):18-20.
[5]石智鹏.基于人类视觉特征的彩色图像转灰度图像算法研究[D].兰州:兰州大学,2017.
[6]刘成龙.MATLAB图象处理[M].北京:清华大学出版社,2017:370-373.
(责编:张宏民)
关键词:OpenCV-Python;HSV色彩空间;阈值分割;图像处理
中图分类号 S436 文献标识码 A 文章编号 1007-7731(2020)04-0085-03
Abstract: In the python 3 environment under the OpenCV framework, a technology for processing leaf image of red jujube disease leaves has been developed. H, S, and V channel color component maps are separated by extracting the HSV color space of the red jujube disease area. For gray-scale images, the gray-scale images are etched and expanded morphologically, and then smoothed and thresholded after denoising. Finally, a better method for segmenting the diseased area of the jujube leaves is obtained. The results show that the lesion segmentation method based on HSV color space can effectively extract the disease characteristics of red jujube leaves, and provide a research basis for the application of machine vision in the identification of jujube diseases and insect pests.
Key words: OpenCV-Python; HSV color space; Threshold segmentation; Image processing
红枣最早产自于中国北部地区,核小肉密,食其甘甜可口,不仅具有改善缺血、胃酸过多、焦虑失眠等症状的效果,也是天然补充维生素的良品。我国每个省市基本都有种植分布,生产制造的红枣及相关产品占据着97%以上世界市场,2017年中国红枣的年产量已超过800万t[1]。
但由于近些年急速扩大红枣的种植规模,和农民相对滞后的综合管理能力,致使病虫害的发生频率增高,也滋生了新的枣病虫害种类,病虫害的威胁已经严重影响到红枣品质和产量提升,损害果农的切身利益[2]。目前,枣病虫害的治理主要还是靠人工,不仅需要投入大量的时间、精力和资金维系,耗时耗力,也不能及时高效的对病虫害发生进行监测,错过最佳的防治时机,从而出现农药滥用或使用不适时的情况,增加人工物料成本。为此,本文提出一种在OpenCV3-python3开发环境下基于HSV色彩空间的红枣病斑的分割方法,利用拥有丰富成熟开源库函数的python编程语言和OpenCV框架对病斑区域红枣叶片进行图像处理,并有效的分割,以期为红枣的病虫害识别做好前期工作和实验依据,是机器视觉代替人眼视觉在枣病虫害的防治方面的一次探索。
1 操作环境的搭建
1.1 硬件环境 固有的硬件条件为:处理器:英特尔Core [email protected]四核(自带核显);主板:华擎Z270 Killer SLI(Z270芯片组);内存:12GB(GLOWAY DDR4 2400MHZ 4G/记忆科技DDR4 2666MHz 8G);主硬盘:三星MZVLW128HEGR-000H1(128GB/固态硬盘);副硬盘:西数WDC WD10EZEX-08WN4A0(1TB/机械硬盘);显卡:AMD Radeon RX 470(4GB/迪兰恒进);显示器:联想LEN60ED LS2224(21.7英寸)。
1.2 软件环境 本次软件环境基础为Windows 10(64bit)操作系统,并且所有本研究应用软件均为windows版本。
(1)下载Anaconda基于python3.7的64bit版本(https://www.anaconda.com/download/),根据自己的需求选择安装路径,并将Anaconda3文件下的Scripts目录和Library\bin目录路径添加至环境变量Path下,以保证应用程序进程更好的运行。
(2)安装集成开发环境IDE(Integrated Development Environment),采用的IDE是微软官方的Visual Studio2017代码编程软件,也可用Anaconda中自带的IDE-Jupyter Notebook,用来编写、运行代码,并快速的调试和纠错。
(3)进入网址(https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv)下载与python 3.7相对应opencv版本的whl文件,在Anaconda Prompt命令窗口的Anaconda3文件目录下输入:pip install opencv_python?4.1.2+contrib? cp37? cp37m?win_amd64.whl. (4)继续输入:pip install opencv_python?4.1.2?cp37? cp37m?win_amd64.whl.
(5)在命令窗口中输入python进入python环境后,再输入improve cv2,无报错即说明已完成OpenCV的安装,到这一步基本的OpenCV-Python操作环境就搭载成功了。
2 实际操作流程
2.1 样本准备 通过扫描仪扫描或相机拍摄采集高清的红枣叶片图像作为实验样本,将提取红枣叶片的病斑部位,进行图像处理操作,如图1所示。
2.2 HSV色彩空间 色彩几乎可以用任意的基色集合来定义,可以将色彩表达为颜色分量的3或4个数值元组,在研究与应用中,产生了不同的基色与之相对应的色彩空间。常见的色彩空间有XYZ、RGB、YIQ、CMY、LAB、HSV、HSL等,可在比色学计算、存储、编码、彩色电视机、色彩差别、分析、色彩感知、计算机图形学等不同的场景进行应用[3]。
HSV色彩空间即色调(Hue)、饱和度(Saturation)、值(Value)(其中V值就是亮度(brightness),因此HSV也可称作HSB)与常用的RGB空间的混合三原色原理不同,HSV空间有效地分离了色度、饱和度和亮度,更适合于对人类色彩感觉的描述,在图像处理中也有更加明显的优势[4]。
将提取的病斑原始图像(图2)输入OpenCV-Python中对RGB的转换得到HSV并分离H、S、V3个通道(如图3),设r、g、b分别是单个颜色为红、绿、蓝的坐标,它们的值都是0~1之间的实数,设m为r,g,b中的最大值,设n为r,g,b中的最小值,公式为:
一般HSV取值范围为:色调为0~360°,饱和度为0~100%,亮度值为0~255,但在OpenCV中,对于HSV,色调范围为[0,179],饱和度范围为[0,255],亮度值范围为[0,255]。
2.3 灰度化 灰度图像是指图像矩阵元素的常见取值范围为整数,并且其区间在[0,255],另外还有在用[0,1]区间的小数来表示灰度值[5]。从白色到黑色不同深浅明暗像素过渡将彩图中更多的梯度细节信息保留了下来,大幅度的提升了运算速率,也降低了矩阵维数。由OpenCV-Python自带的cvtColor转换函数运算获得(图4)
2.4 形态学处理 膨胀(扩张)、腐蚀(侵蚀)、开运算、闭运算是几种基本的形态学运算,膨胀图像相当于对其反色图像腐蚀后再取反色,作用是把图像周围的背景点合并:到物体中,膨胀的运算符为,A用B来膨胀,写作A+B,定义为[6]:
腐蚀是膨胀的反运算,腐蚀图像相当于对其反色图像膨胀后再取反色,它的作用是消除物体边界点,可以把小于结构元素的物体去除,选取不同大小的结构元素可以去掉不同大小的物体,运算符为[Θ],A用B来腐蚀,写作A[Θ]B,定义为[6]:
2.5 平滑去噪 图像进行平滑处理能够有效消除噪声,本文采用一种能够减少边缘模糊的非线性平滑方法-中值滤波,将形态学闭运算处理过的H、S、V图像在进行中值滤波处理(滤波窗口为3x3)效果如图6所示。
2.6 阈值分割 阈值分割是图像分割中的常用分割方法,根据目标图像与其背景的灰度梯度,设置阈值将不同像素块进行分类,最终实现目标与背景的分离,本文采用的是OpenCV库中自带的Otsu算法函数对图6中中值滤波处理过的H、S、V分量图进行分割,再经过二值化处理后得到图7。
3 结论
本文通过在OpenCV-Python环境中的图像处理操作工作,提出一种基于HSV色彩空间红枣叶片病斑分割方法,经过实验分别对HSV色彩模型的H、S、V3个分量图分别进行常规处理,通过结果对比来看,HSV-H分量图的最终分割效果初步能满足对叶片病斑区域的分割要求,也凸显了OpenCV-Python的易用性与高效性,为后续进一步推进红枣叶片病害识别工作奠定基础。
参考文献
[1]2017-2018年全球红枣产量产业规模及增长情况统计回顾[EB/OL].中国产业信息网.http://www.chyxx.com/industry/201807/663171.html,2018-7-27.
[2]冯宏祖,王立生.新疆枣园病虫草害诊断与防治原色图谱[M].五家渠:新疆生产建设兵团出版社,2012:1.
[3]Milan Sonka,Vaclav Hlavac,Roger Boyle,著.图像处理、分析与机器视觉(第4版)[M].兴军亮,艾海舟,等译.北京:清华大学出版社,2016:25-27.
[4]韩丽娜,熊杰,耿国华,等.利用HSV空间的双通道同态滤波真彩图像增强[J].计算机工程与应用,2009,45(27):18-20.
[5]石智鹏.基于人类视觉特征的彩色图像转灰度图像算法研究[D].兰州:兰州大学,2017.
[6]刘成龙.MATLAB图象处理[M].北京:清华大学出版社,2017:370-373.
(责编:张宏民)