实验记录
预处理:调整亮度和饱和度
1、亮度和饱和度
所有的图像亮度和饱和度都不一样,为了避免每次都要麻烦处理不同的图像,设计了一个手动任意调整图片饱和度和亮度的功能界面,用于调整各种初始图像
参考:(6条消息) 【python】使用滑动条调整图片亮度和饱和度,比PS还方便的图片处理,cv2_HelenLee01的博客-CSDN博客
详细步骤:
1、将RGB图像值归一化到[0, 1] 2、然后使用函数cvtColor进行色彩空间的转换 3、接下来可以根据处理灰度图像对比度增强伽马变换或者线性变换调整饱和度和亮度分量 4、最后转换到RGB色彩空间
原理:RGB和HSV色彩空间
2、均值滤波、中值滤波、高斯滤波
图像分割
基本的图像分割方法:
参考:基于自适应分割算法与迁移学习的棉桃识别方法研究 - 中国知网 (cnki.net)
1、边界分割法
Laplacian边缘算子、Canny边缘算子、Scharr算子、Sobel算子
Laplacian边缘算子 Sobel算子
Canny边缘算子 Scharr算子
2、阈值分割法
参考:(迭代法、otsu法、最大熵法)基于自适应分割算法与迁移学习的棉桃识别方法研究 - 中国知网 (cnki.net)
(1)人工选择法
(2)迭代法
(17条消息) OpenCV - 均值迭代分割_空空的司马的博客-CSDN博客_均值迭代分割
算法的步骤:
1、选择一个初始化阈值TT,通常取整张图灰度值的平均值;
2、计算TT分成的两个部分的灰度均值u1u1和u2u2;
3、更新T=(u1+u2)/2T=(u1+u2)/2;
4、重复步骤2~3,直到相邻两次计算的结果相等,或者两次结果的差值小于预先设定的值某个值;
5、用这个T对图像进行分割。
(3)Otsu法
参考:(17条消息) OpenCV - 最大间方差分割_空空的司马的博客-CSDN博客
和均值迭代算法相似,OTSU算法也是利用图像的直方图进行的。OTSU算法的思想是选取一个阈值,为图像的灰度级将直方图两部分,值使得分成的两组间方差最大。
(4)最大熵法
(17条消息) OpenCV - 最大熵分割_空空的司马的博客-CSDN博客
选取一个阈值T,分割成前景和背景,分别计算前景和背景的熵,将每一个灰度级都当做一次初始T重复前面的操作,使得两类熵之和最大的T就是最佳阈值。
参考:(13条消息) 最大熵原理(The Principle of Maximum Entropy)1_拖出去喂猪的博客-CSDN博客_连续最大熵定理
原图 均值滤波后的灰度图 灰度直方图
迭代分割法 OTSU分割法 最大熵法
1、正常环境下的无人机牧草图像分割
基于HSV色彩空间的OTSU法
参考:基于HSV色彩空间和Otsu算法的无人机影像植被覆盖度自动提取 - 中国知网 (cnki.net)
基于HSV模型与改进的OTSU算法花椒图像分割 - 中国知网 (cnki.net)
采用H分量对无人机图像中的植被进行提取,现将RGB图像转换成HSV色彩空间,针对植被凸显性较好的H分量结合最大类间方差法,在H分量内自动搜索最佳阈值并进行分割
原图 H分量灰度图 H分量直方图
由上图可以看出,H直方图曲线有明显的波峰和波谷,适合用otsu算法分割牧草和背景。先对H分量图中值滤波降噪处理
中值滤波后的H分量灰度图 中值滤波后的H分量直方图 基于H分量的OTSU分割二值图
基于H分量otsu分割彩色图
计算出植被覆盖度= 39.816686 %
当验证这个方法的健壮性时,将图像换成有干扰的牧草图像,发现干扰物体分割不了
原图 H分量灰度图
分割后的二值图 分割后的彩色图
2、干扰环境下的无人机牧草图像分割
基于各种颜色指数的OTSU分割方法
参考:基于无人机图像的草地植被盖度估算方法比较 - 中国知网 (cnki.net)
颜色指数:EXG超绿指数、ExG-ExR超绿减超红指数、CIVE植被颜色指数、GLI绿叶指数
1、EXG超绿指数
基于无人机图像颜色指数的松材线虫病识别方法研究 - 中国知网 (cnki.net)
ExG = 2g - r - b
颜色指数灰度化—>中值滤波—> otsu阈值分割—形态学操作—>分割结果分析评价—>计算覆盖度
原图 ExG灰度化后的灰度图
ExG+OTSU分割的二值图 ExG+OTSU分割的彩色图
2、ExG-ExR超绿减超红指数
ExG-ExR= 3g - 2.4r - b
ExG-ExR灰度化后的灰度图 ExG-ExR+OTSU分割的二值图
ExG-ExR+OTSU分割的彩色图
3、CIVE植被颜色指数
CIVE = 0.411r - 0.811g + 0.385b +18.78745
CIVE+OTSU分割二值图 CIVE+OTSU分割彩色图
4、ExGR超绿超红差分指数
ExGR = ExG-(1.4r - g)
ExGR灰度图 ExGR+OTSU分割二值图
ExGR+OTSU分割彩色图
基于遗传算法的最大熵法
参考:基于无人机大样方草地植被覆盖度及生物量估算方法研究 - 中国知网 (cnki.net)
首先用双边滤波对无人机图像进行去噪处理,并用直方图均衡化进行图像增强,选择基于遗传算法的最大熵法对图像植被与背景进行分割,估算植被覆盖度FVC
预处理:无人机图像去噪、图像增强
双边滤波——>直方图均衡化
(15条消息) 图像处理(七):直方图_ComAng的博客-CSDN博客_图像处理直方图
原图 原直方图
去噪增强后直方图 去噪增强之后的图像
可以看出无人机图像经过双边滤波和自适应直方图均衡化后的图像各灰度等级分布较均匀,植被与背景之间差异明显,有利于分割
遗传算法:
遗传算法是模拟自然界的生物自然淘汰和遗传选择的进化基本过程的计算模型。在生物进化过程中,种群个体主要通过遗传和变异来逐步“优胜劣汰”以适应不断变化的外界环境。遗传算法就是参考上述“适者生存”的进化理论产生的。
该优化方法在初始计算时先初始化一定规模的种群个体,这些个体的染色体是我们人为事先随机生成的,而我们最终所要求的最优解就是从这些个体遗传进化择优得到,对这些个体全部运算记录它们的适应度值,依靠得出的适应度值对所有的个体采取基本的生物遗传进化操作,包括个体基因的遗传,个体之间基因的交换以及基因突变等等。从这些个体中淘汰小部分适应度值小的个体,保留大部分适应度值大的个体,从而利用这些高适应度值的个体形成新的计算种群。下代种群在适应度公式的择优下,选择保留的都是优良个体,因此种群得到了优化。这样经过反复迭代操作,最终可求得预期最优解
可以看出基于遗传算法的最大熵法分割的细节是很到位的,草的形状轮廓都被准确无误地分割出来,但是有些像素值较高的土壤和干扰物部分也被误分成了植被
预处理后的原图 基于遗传算法的最大熵法分割图像
基于颜色指数+遗传算法优化的最大熵法提取植被流程:
植被覆盖度(FVC)
参考:使用python提取图片中的绿色植被并且计算植被覆盖度fvc-python黑洞网 (pythonheidong.com)
植被覆盖度(FVC)是生态模型中的一个关键参数,它通常被定义为植被(包括叶、茎、枝)在地面的垂直投影面积占统计区域总面积的百分比,是刻画地表植被覆盖的一个重要参数,也是指示生态环境变化的重要指标之一。
求覆盖度:对分割的彩色图片进行二值化处理,使绿色植被为白色,背景为黑色,通过计算白像素占总像素的比例得到植被覆盖度
H_OTSU:
黑色像素个数: 368045 白色像素个数: 441955
图片总像素个数: 810000
黑色占比: 45.437654 %
白色占比: 54.562346 %
植被覆盖度= 54.562346 %
ExG_OTSU:
黑色像素个数: 464300 白色像素个数: 345700
图片总像素个数: 810000
黑色占比: 57.320988 %
白色占比: 42.679012 %
植被覆盖度= 42.679012 %
ExG-ExR_OTSU:
黑色像素个数: 543279 白色像素个数: 266721
图片总像素个数: 810000
黑色占比: 67.071481 %
白色占比: 32.928519 %
植被覆盖度= 32.928519 %
CIVE_OTSU:
黑色像素个数: 402149 白色像素个数:407851
图片总像素个数: 810000
黑色占比: 49.648025 %
白色占比: 50.351975 %
植被覆盖度= 50.351975 %
ExGR_OTSU:
黑色像素个数: 747593 白色像素个数: 62407
图片总像素个数: 810000
黑色占比: 92.295432 %
白色占比: 7.704568 %
植被覆盖度= 7.704568 %
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)