python 单通道tiff图转jpg
import os
import cv2
import numpy as np
from osgeo import gdal
from skimage import iosource_dir = 'D:\desk\dm\Acky\BaseNet\data_set\FUSARship-t-v\\val\\tug' # 源tiff图路径
target_dir = 'D:\desk\dm\Acky\BaseNet\data_set\FUSARship-1\\val\\tug' # 保存到的jgp路径# 如果目标目录不存在的话,进行目录的新建
if not os.path.exists(target_dir):os.makedirs(target_dir)
files = os.listdir(source_dir)for image_file in files:name = []portion = os.path.splitext(image_file) # 把文件名拆分为名字和后缀if portion[1] == ".tiff":name = portion[0]image_path = source_dir + "\\" + image_fileimage_name = target_dir + "\\" + name + ".jpg"#读取tiff图片(我的全是单通道,如果需要可以写if判断一下是单还是三通道)img = cv2.imread(os.path.join(source_dir, image_file))gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)image = np.zeros_like(img)image[:, :, 0] = grayimage[:, :, 1] = grayimage[:, :, 2] = gray#tiff转jpgimage = image / image.max() # 使其所有值不大于一image = image * 255 - 0.001 # 减去0.001防止变成负整型image = image.astype(np.uint8) # 强制转换成8位整型b = image[:, :, 0] # 读取蓝通道g = image[:, :, 1] # 读取绿通道r = image[:, :, 2] # 读取红通道bgr = cv2.merge([r, g, b]) # 通道拼接cv2.imwrite(image_name, bgr) # 图片存储print("finish" + " " + image_name)
后续修改+补充:cv2.imread读取默认转为三通道rgb图像
所以从思路来看可以直接cv2.imread读取为rgb图,并拆分img的名字和后缀,将后缀改为jpg即可了,简单方便。
image_B = cv2.imread((self.files_B[random.randint(0, len(self.files_B) - 1)]), 0)# 第二个参数是通道数和位深的参数,# IMREAD_UNCHANGED = -1 # 不进行转化,比如保存为了16位的图片,读取出来仍然为16位。# IMREAD_GRAYSCALE = 0 # 进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。# IMREAD_COLOR = 1 # 进行转化为RGB三通道图像,图像深度转为8位# IMREAD_ANYDEPTH = 2 # 保持图像深度不变,进行转化为灰度图。# IMREAD_ANYCOLOR = 4 # 若图像通道数小于等于3,则保持原通道数不变;若通道数大于3则只取取前三个通道。图像深度转为8位
import os
import cv2
import numpy as np
from osgeo import gdal
from skimage import iosource_dir = 'D:\desk\dm\Acky\BaseNet\data_set\FUSARship-t-v\\val\\tug' # 源tiff图路径
target_dir = 'D:\desk\dm\Acky\BaseNet\data_set\FUSARship-1\\val\\tug' # 保存到的jgp路径# 如果目标目录不存在的话,进行目录的新建
if not os.path.exists(target_dir):os.makedirs(target_dir)
files = os.listdir(source_dir)for image_file in files:name = []portion = os.path.splitext(image_file) # 把文件名拆分为名字和后缀if portion[1] == ".tiff":name = portion[0]image_path = source_dir + "\\" + image_fileimage_name = target_dir + "\\" + name + ".jpg"img = cv2.imread(os.path.join(source_dir, image_file))cv2.imwrite(image_name, img) # 图片存储print("finish" + " " + image_name)
python 单通道tiff图转jpg相关推荐
- python 单通道wav转成双通道wav
需求:将一个单通道的wav音频文件转化成双通道的wav文件 解决方法:将单通道文件复制成双通道 参考链接:[音频处理]python将两个单声道wav音频合成一个双声道wav音频_立体声感 import ...
- python单通道转三通道
为了在灰度图像上画彩色框,而需要把单通道转为三通道 在网上找了好几种方法都报错,说是图片是数组格式,无法转换 最终靠这两句代码,成功转换到了三通道中 # im 为单通道图像 image为生成的三通道图 ...
- python 单通道转3通道
下面有两种方法都可以: import numpy as np a=np.asarray([[10,20],[101,201]])# a=a[:,:,np.newaxis] # print(a.shap ...
- 单通道灰度图片fine-tune训练网络与caffe批量分类测试
1. 转imdb灰度图数据 一定要加上--gray,否则训练时报如下错误: GLOG_logtostderr=1 $TOOLS/convert_imageset \--resize_height=$R ...
- python将图像转换为8位单通道_Python OpenCV读取16位单通道图像并转换为8位灰度图显示...
语义.实例分割数据集的标注图像以及一些深度图像等都是由单通道16位整型图像存储的,我们通常需要读取这种图像并显示出来,由于OpenCV一般只能够对8位图像进行显示,也就是像素范围在0-255的图像,而 ...
- python将图像转换为8位单通道_使用Python将图片转换为单通道黑白图片
本文介绍如何使用python将图片转换为纯黑白的单通道图片.文中用到的脚本支持彩色.灰度.带alpha通道的输入图片以及SVG矢量图,支持调整输出图片大小以及设置灰度阈值. 最后介绍如何输出SSD13 ...
- 三通道的黑白图(不同于单通道的普通的黑白图片)
有的图片是黑白色的,但不是单通道,而是三通道的,是因为 每个 像素点 的 3个值 相同(其中要注意三个通道的像素点的值一样,要是三个通道当前值的平均值(代码上的temp)而不是某个通道上的值). 也就 ...
- python opencv单通道转多通道_13、OpenCV绘图和文本显示
我们经常想要绘制各种形状,为此,OpenCV提供了一系列功能,可以绘制直线,矩形,圆等.OpenCV的绘图功能适用于图像,但其中大多数仅影响前三个通道,在单通道图像的情况下仅默认第一个通道.大多数绘图 ...
- 2转单通道 python_机器学习用Python—Python集成工具包Anaconda安装步骤
近几年来,机器学习以及深度学习的研究异常火热,机器学习和深度学习也逐渐渗透到各个领域,当然,脑科学领域也不例外.利用机器学习和深度学习技术解决脑科学领域中的问题,成为目前最为火热的研究方向之一.而神经 ...
最新文章
- js弹框带传值父窗口给子框_JavaScript实现弹出子窗口并传值给父窗口
- 做JAVA开发的同学一定遇到过的爆表问题,看这里解决
- python列表写入csv文件_将多个列表写入csv。Python中的文件
- Node.js有了新的管理者
- 为什么0.1无法被二进制小数精确表示?
- 抽象工厂模式升级版————泛型化实现
- 快速排序里的学问:从猜数字开始 猜数字里的算法思想
- oracle11g 查看表,oracle11g查看,添加表空间
- 字符串分割 异常 泛型 练习
- 在crontab中利用scp命令自动备份文件
- SpringBoot+jersey实现
- 【转】Java中的static关键字解析
- AlphaPose(RMPE)区域多人姿态估计理解
- 微信小程序分享页面,分享到朋友圈
- 【视频演示】B站视频演示
- 哈工大计算机科学与捄术学院,[哈尔滨工业大学]管理科学与工程
- 【教学类-17-01】20221122《世界杯七巧板A4整页-随机参考图+七巧板+画框》(大班)
- 聊一下关于面试的话题,只谈共性,不谈个例,一家之言,仅供求职者参考:)
- Python matplotlib 堆叠图
- sql2000不显示服务器失败,安装sql server 2000数据库提示程序配置服务器失败.(解决方法)...