我们有大量的热/红外图像数据集。由于某些错误,我们收到的数据不是单层TIF或其他东西,但相机软件已经应用了色彩映射,而我现在正在查看RGB jpg文件。
我能够重建"使用在线图像中使用的色彩图,现在我正在寻找一种有效的方法将RGB图像恢复为灰度以便能够使用它。小问题,并非所有的图像RGB三元组都可以在我的重建色图中表示,所以现在我的python脚本做了类似的事情:
I = cv2.imread('image.jpg')
Iout = I[:,:,0] * 0
for i in range(0, I.shape[0]):
for j in range(0, I.shape[1]):
# calculate square difference between value and colormap and find idx
Iout[i,j]=idx
这样可行,但由于for循环而非常缓慢。
有没有办法使用具有RGB值(3D或其他)的查找表,这些值可以作为一个整体应用于图像?对于不在色彩映射中的值,它应该选择"最接近的"一,就像我上面提到的差异一样。