Python图像基本操作有哪些
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"Python图像基本操作有哪些",在日常操作中,相信很多人在Python图像基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python图
千家信息网最后更新 2025年01月19日Python图像基本操作有哪些
这篇文章主要介绍"Python图像基本操作有哪些",在日常操作中,相信很多人在Python图像基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python图像基本操作有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
libtiff 包装器
from libtiff import TIFFtif = TIFF.open('filename.tif', mode='r') #打开tiff文件进行读取image = tif.read_image() #读取图像并作为numpy数组返回for image in tif.iter_images() #读取TIFF文件中的所有图像tif = TIFF.open('filename.tif', mode='w') #打开tiff文件进行写入tif.write_image(image) #将图像写入tiff文件
Python 模块
from libtiff import TIFFfile, TIFFimagetif = TIFFfile('filename.tif') #读取图片samples, sample_names = tiff.get_samples()tiff = TIFFimage(data, description='')tiff.write_file('filename.tif', compression='none') # or 'lzw'del tiff # 刷新(释放缓存)
opencv 模块
import cv2cv2.imread("filename",flags)=====================其中:flags四种选择如下:==================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位对于多通道TIFF图像,若要保证图像数据的正常读取,显然要选择IMREAD_UNCHANGED
PIL 模块
from PIL import Imageimg0 = Image.open("D:/python_script/ffff/11lalala.jpg")img1 = Image.open("D:/python_script/ffff/42608122.tif")img2 = Image.open("D:/python_script/ffff/42608122_1.jpg") #这张图片是直接修改上张图的后缀名print ("图片格式:{0},图片大小:{1},图片模式:{2}".format(img0.format,img0.size,img0.mode))print ("图片格式:{0},图片大小:{1},图片模式:{2}".format(img1.format,img1.size,img1.mode))print ("图片格式:{0},图片大小:{1},图片模式:{2}".format(img2.format,img2.size,img2.mode))输出:#说明直接修改图片后缀名,图片的编码格式并没有改变图片格式:JPEG,图片大小:(245, 213),图片模式:RGB图片格式:TIFF,图片大小:(2480, 3508),图片模式:YCbCr图片格式:TIFF,图片大小:(2480, 3508),图片模式:YCbCr
直接修改图片格式
import PIL.Imageimport osdef convert(input_dir,output_dir): for filename in os.listdir(input_dir): path = input_dir+"/"+filename print("doing... ",path) PIL.Image.open(path).save(output_dir+"/"+filename[:-4]+".jpg") print ("%s has been changed!"%filename)if __name__ == '__main__': input_dir = "D:/classifier_data20181225/img1" output_dir = "D:/classifier_data20181225/img2" convert(input_dir,output_dir)
大(分辨率大)图片缩小
遇到分辨率大,图片文件大小并不大的文件,opencv打不开,此时用到了以下代码用来缩小图片。
若文件宽大于1200,(高度小于1800)以此宽度等比缩放
若文件高大于1800,(宽度小于1200)以此高度等比缩放
import osfrom PIL import Imageimport shutildef get_img(input_dir): img_path_list = [] for (root_path,dirname,filenames) in os.walk(input_dir): for filename in filenames: img_path = root_path+"/"+filename img_path_list.append(img_path) print("img_path_list",img_path_list) return img_path_listdef process_image(filename,output_dir, mwidth=1200, mheight=1800): image = Image.open(filename) w, h = image.size if w <= mwidth and h <= mheight: print(filename, 'is OK.') shutil.move(filename, output_dir+filename[-15:]) return if (1.0 * w / mwidth) > (1.0 * h / mheight): scale = 1.0 * w / mwidth new_im = image.resize((int(w / scale), int(h / scale)), Image.ANTIALIAS) else: scale = 1.0 * h / mheight new_im = image.resize((int(w / scale), int(h / scale)), Image.ANTIALIAS) new_im.save(output_dir+filename[-15:]) new_im.close()if __name__ == '__main__': input_dir = "D:/classifier_data20181212/lipei_resize_1" output_dir = "D:/classifier_data20181212/lipei_resize/" img_path_list = get_img(input_dir) for filename in img_path_list: print("filename",filename) process_image(filename,output_dir)
到此,关于"Python图像基本操作有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图片
图像
文件
格式
大小
模式
通道
基本操作
学习
模块
深度
分辨率
后缀
宽度
更多
灰度
高度
帮助
选择
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京现代软件开发厂家报价
张召忠回应网络安全
甘肃中小学家庭教育和网络安全
杭州百亚网络技术怎么样
浙江邮箱外贸软件开发
连云港营销软件开发流程
考勤数据库论文
军创哆备宝软件开发
霍尔果斯百卓网络技术有限公司
腾讯网络安全李怀刚
服务器数据库程序员
关系型数据库性能比较
软件开发安全控制方案
江西数据库安全箱行业
服务器现存问题
刺激战场亚服服务器资源
苹果软件开发环境
网络安全为手抄报
唐山原装服务器哪家好
思易网络技术有限公司官网
北京现代软件开发厂家报价
网络文明和网络安全教育视频
剑灵最新服务器
简化应用软件开发
c 添加下拉框数据库
ftp服务器目录权限
逃离塔科夫所有服务器图片
湖南短视频软件开发运营成本
申请农村固定观察点数据库
主从新建数据库