python 高通道 TIF格式图片的通道拆分与合并、读取与保存

您所在的位置:网站首页 一个tif文件有两张图片 python 高通道 TIF格式图片的通道拆分与合并、读取与保存

python 高通道 TIF格式图片的通道拆分与合并、读取与保存

2024-07-12 03:27| 来源: 网络整理| 查看: 265

tif数据的读取 彩色 近红外图像显示 通道拆分与合并 python 详细注释笔记

TIF图片的读取

鉴于TIF图片很多是卫星拍摄的16位图像,很多图片不能直接读取,必须将其先进行数据的8位格式转换,然后再进行通道的拆分和合并,才能进行图像的读取,否则图像打开后会显示全黑或者全白

一、使用的Python库 skimagenumpyopencvmatplotlib(可以直接查看矩阵) from skimage import io import cv2 import matplotlib.pyplot as plt import numpy as np 二、函数代码 def read_tif( imgpath ): img = io.imread(imgpath)#读取图片 imgpath为图片所在位置 img = img/img.max() img =img*255-0.001#减去0.001防止变成负整型 img =img.astype(np.uint8) print(img.shape)#显示图片大小和通道数 通道数为4 b = img[:, :, 0]#蓝通道 g = img[:, :, 1]#绿通道 r = img[:, :, 2]#红通道 nir = img[:, :, 3]#近红外通道,不可以用imshow直接查看 #通道拼接 两种方法 bgr = cv2.merge([b, g, r]) rgb= np.dstack([r,g,b]) #imshow()必须有图片的名字且像素最大值255,否则会报错 cv2.imshow('bgr', bgr) plt.matshow(rgb)#matplotlib的matshow()可以直接看矩阵而不用进行位数转换 cv2.imshow('近红外灰度图',nir)#必须有图片的名字且像素最大值255,否则会报错 #两种方法接口不一样,imshow为bgr输入 matshow为rgb输入 cv2.imwrite("C:/Users/Administrator/Desktop/1.jpg", img)#保存图片 cv2.waitKey(0)#窗口等待响应 cv2.destroyAllWindows()#消除窗口


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3