Python图像基本操作有哪些
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"Python图像基本操作有哪些",在日常操作中,相信很多人在Python图像基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python图
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
电子信息专硕毕业转软件开发岗
聊城计算机软件开发学校
400电话数据库
天津图腾服务器机柜报价
软件开发的政策风险
我的世界服务器修改器
威海峰尚网络技术
云服务器的租用
圣堡动漫网络技术深圳有限公司
智能城市软件开发
千岛湖底阿里云服务器贵州
北京小型软件开发咨询客服
手抄报图片素材软件开发
使用最先进的软件开发
服务器的安全模式有哪些
软件开发技术应用
劳动节 网络安全
数据库连续访问几千次
服务器和app 通信
国外服务器交流论坛
江苏新华网络技术有限公司
怎么看数据库开启没有了
共筑网络安全新形势分析
威海峰尚网络技术
怎样介绍软件开发
无线传感网络技术试题
沧州廊坊oa网络技术
海北州网络技术哪家好
数据库金额
上海打零工互联网科技