cv2.imwrite保存TIFF是LZW无损!!!!
cv2.imwrite保存TIFF是LZW无损!!!!
cv2.imwrite保存TIFF是LZW无损!!!!
对于JPG格式保存下来的图片默认会变成8位BGR三通道格式的!!!!
对于JPG格式保存下来的图片默认会变成8位BGR三通道格式的!!!!
对于JPG格式保存下来的图片默认会变成8位BGR三通道格式的!!!!
就算是你是YUV400采样的灰度图片,他也会复制三个一模一样通道给你。
cv2.imread(file,flag)
含有flag 标志位,
IMREAD_UNCHANGED = -1#不进行转化,比如保存为了16位的图片,读取出来仍然为16位。(推荐) IMREAD_GRAYSCALE = 0#进行转化为灰度图,比如保存为了16位的图片,读取出来为8位。 IMREAD_COLOR = 1#进行转化为RGB三通道图像,图像深度转为8位 IMREAD_ANYDEPTH = 2#保持图像深度不变,进行转化为灰度图。 IMREAD_ANYCOLOR = 4#若图像通道数小于等于3,则保持原通道数不变;若通道数大于3则只取取前三个通道。图像深度转为8位
- JPG可以通过这样选定质量。后面的100是最高质量,CV2默认是95,质量越高,文件越大
cv2.imwrite(file, img, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
这是我用16位的测试JPG格式保存质量的关系曲线,大家可以参考大小与质量
8bit合并成16bit并不是merge = (img1 << 8)+img2这么简单!!!!(图中这个公式标错了)
会溢出,如图
程序运行之后显示合并后的图片UINT16,但其实造成了“潜在的溢出”
我使用下面的代码使8位合并时,提前扩充到16位
IMG1 = img1.astype(np.uint16)
IMG2 = img2.astype(np.uint16)
完美!