Python图像基本操作有哪些
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Python图像基本操作有哪些",在日常操作中,相信很多人在Python图像基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python图
千家信息网最后更新 2026年11月01日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_UNCHANGEDPIL 模块
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安全错误
数据库的锁怎样保障安全
互联网黑科技
互联网科技公司排名
西安纸贵互联网科技有限公司
科技与互联网
深圳科技互联网
狮子座互联网科技
互联网 卓越科技
互联网科技logo设计
深圳天众互联网科技公司
互联网科技革命什么开始
花神(南京)互联网科技有限公司
乌苏新华互联网科技做什么的
世界互联网领先科技成果获奖
锡山区互联网智能科技产品供应
怎样加入科技互联网
山东星卡互联网科技有限公司官网
浙南科技城互联网大厦招聘
上海创道互联网络科技有限公司
2021世界互联网领先科技成果发布
科技互联网公司两年变化
互联网科技海报
互联网加科技
江苏根荣互联网科技
互联网属科技
科技服务与互联网
互联网 的科技创新
海南科技产业互联网平台
坤平互联网科技
怎样加入科技互联网
保山浩联互联网科技有限公司