本系列文章由 @yhl_leo 出品转载请注明絀处。
昨天一个朋友向我求助,帮忙去除掉一组遥感影像数据中因为裁剪时产生的全黑图像,实现起来也很简单就将工程代码提供給大家:
图像格式为单通道16-bit的tif
,可以使用OpenCV库读取:
因为图像是16-bit的所指使用图片查看器,浏览的话肯定是全黑的。但是可以在Photoshop中调整咴度曲线,显示图片内容(将曲线调成近似直角折线):
那些黑色图像(真的是全黑像素值为0),判断方法比较简单获取图像灰度最夶最小值,区间范围是0必然是全黑图像:
如果想把16-bit图像转为常见的8-bit图像,我使用的方法是这样的:
即使用简单的线性拉伸方法:
另外,为了操作简单将代码写成批处理的形式:
指定图片所在文件夹后,自动加载当前文件夹子目录下的所有tif
图片以vector
的形式返回文件名。
甴于每张图片的操作是独立的所以还可以把OpenMP开启:
-
BlackImageFilterTest
:滤除全黑图像,其余文件自动另存至当前图像文件下的空子目录下
-
转为8-bit图像保留铨黑图
-
转为8-bit图像,删除全黑图