我正在测试几个VHSR卫星图像的分割算法,这些图像最初是16位格式,但是当我将其转换为8位图像时,生成的图像显示出条纹状外观。 我一直在尝试不同的python库(skimage,cv2,scipy)获得相似的结果。
1)原始的16位图像是4波段图像(NIR,B,G,R),因此您需要选择合适的波段来创建真实的彩色图像RGB图像(4,3,2乐队)。提前致谢。可以从以下链接下载: 16bit image
2)我使用此代码从现在适合8位范围的16位整数转换每个像素值:
from scipy.misc import bytescale
SS = io.imread('Imag16bit.tif')
SS = bytescale(SS)
SS = np.asarray(SS)
plt.imshow(SS)
这是上面代码的结果:
任何建议都会受到赞赏,Jaime
答案 0 :(得分:1)
public class User {
public int id { get; set; }
public string name { get; set; }
// id of restaurant...
// public int favoriteRestaurantId { get; set; }
// ...or entire instance of Restaurant type
// public Restaurant favoriteRestaurant { get; set; }
}
public class Restaurant {
public int id { get; set; }
public string name { get; set; }
}
为我工作。我认为bytescale
步骤弄得有些混乱。
asarray
答案 1 :(得分:0)
我认为这是一种方法:
#!/usr/local/bin/python3
from PIL import Image
from tifffile import imsave, imread
# Load image
im = imread('SkySat_16bit.tif')
# Extract Red, Green and Blue bands into separate 8-bit arrays
R = (im[:,:,3]/256).astype(np.uint8)
G = (im[:,:,2]/256).astype(np.uint8)
B = (im[:,:,1]/256).astype(np.uint8)
# Combine bands into RGB array
RGB = np.dstack((R,G,B))
# Save to disk
Image.fromarray(RGB).save('result.png')
您可能需要稍微调整对比度,然后检查我是否选择了正确的波段。