发布网站搭建教程,wordpress 回复 慢,湖北手机版建站系统价格,淮南招投标信息网最近处理遥感影像总是不时听到 图片的波段错了#xff0c;一开始不明就里#xff0c;都是图片怎么就判断错了。
1、图像RGB波段顺序判断
后面和大家交流#xff0c;基本上知道了一个判断标准。 一般来说#xff0c;进入人眼的自然画面在计算机视觉中一般是rgb波段顺序表示…最近处理遥感影像总是不时听到 图片的波段错了一开始不明就里都是图片怎么就判断错了。
1、图像RGB波段顺序判断
后面和大家交流基本上知道了一个判断标准。 一般来说进入人眼的自然画面在计算机视觉中一般是rgb波段顺序表示的人类的常识和自然感知与 rgb波段顺序的表示 是贴合的。
这个rgb波段图像和人类感知的贴合主要体现在常规事物在人眼中的颜色和在图片中的颜色的一致性。比如说一个自然界中的白色物体在rgb图像中呈现出来的也是白色而如果你的图片是bgr波段保存的话犹豫b波段代表blue颜色通道即蓝色蓝色处于第一个颜色波段这时白色的物体在bgr图像中就会变成蓝色这时呈现出来的图像与自然界不一样就会说波段错了。
如下是不同波段顺序呈现的图像效果 这种现象并不是很好观察特别是在这个图片泛滥的时代我们早已不再对自然颜色有着明确的认知。而且当rgb图像的三个波段的数值所呈现的颜色不是那么鲜明时变成bgr也不好判断。这里介绍一种判断方法。
就是找一个包含不同颜色的事物具有鲜明对比性的比如田径场包含棕红色的橡胶跑道和绿色的草坪设施你把图像的波段变成rgb或bgr就会发现明显的颜色变化。或者借助arcmap也可以修改图像的波段与常规事物颜色进行对比判断你的图片是否是正确的rgb波段。
如下所示正常RGB图像和BGR图像 正常的RGB图像 波段顺序为BGR的图像
2、opencv和gdal
opencv读取图片一般是bgr、hwc形式的这个得理解一下一般的图像是rgb波段的也就是说opencv读取图片时会把波段顺序调换一下这个操作是不以输入图像是否是rgb格式为转移的。即使输入图像是bgr的opencv读取也会进行波段顺序的变换进行读取使bgr读进去变成rgb。所以在输出图片imwrite时要注意你当前的波段顺序是rgb还是bgr。如果读取后是bgr输出也是bgr读取后变换成rgb输出也会变成rgb。
gdal也是同理gdal用来读取处理遥感影像较多因为具有处理地理坐标的功能。gdal与opencv不同在图像波段数小于等于4时gdal读取图片是 rgbn、chw形式的所以明确读取的波段顺序后才可以明确下一步处理的正确性。
其他pillow库、scikit-image库也是一样的使用明确其对数据的处理方法才能保证得到想要的图像处理结果。
3、transpose改变图像维度
其中chw和hwc是表示图像的维度的分别c是波段数通道数channel、h是图像的像素高度height、w是图像的像素宽度width有时候需要转换图像的维度比如hwc变成chw便于处理这时可以使用 transpose(201) 来实现transpose函数可以转换图像的维度实际上就是换个方向摆放图像的数据也可以说采用不同的坐标系来表示图像。