发布网友 发布时间:2024-09-25 20:56
共1个回答
热心网友 时间:2024-10-05 13:41
导读:本篇文章首席CTO笔记来给大家介绍有关python如何判断图片内容多少的相关内容,希望对大家有所帮助,一起来看看吧。
python如何获取属性不一样的图片.通过image图像对象去点format这个属性名就能够将该图片的文件格式给获取到,文件格式实际上指的就是这个图片是以什么作为结尾的。是png、jpeg还是gif图片等,代码示例如下:
print(image.format)
PNG
2.而通过size属性就可以获取到图片大小,图片大小不是指它占用空间有多少,是多少kb的。而是获取它的长和宽,也就是图像的分辨率像素值,会返回一个元组对象,示例如下:
print(image.size)
(6621,4414)
3.mode属性表示的意思就是图像的色彩模式信息,一般来说图像被Pillow库读取进来之后可以识别的色彩模式有九种,其中RGB模式是最常见的。除此之外还有表示黑白灰度图的L、表示八位像素图的P等,示例如下:
print(image.mode)
RBGA
4.最后则是能够通过info属性来获取到该图片的其余信息了,这些信息统称为图片的辞典集。这些获取到的信息都是该图形的特征列表值,
Python如何图像识别?
1.简介。
图像处理是一门应用非常广的技术,而拥有非常丰富第三方扩展库的Python当然不会错过这一门盛宴。PIL(PythonImagingLibrary)是Python中最常用的图像处理库,目前版本为1.1.7,我们可以?在这里?下载学习和查找资料。
Image类是PIL库中一个非常重要的类,通过这个类来创建实例可以有直接载入图像文件,读取处理过的图像和通过抓取的方法得到的图像这三种方法。
2.使用。
导入Image模块。然后通过Image类中的open方法即可载入一个图像文件。如果载入文件失败,则会引起一个IOError;若无返回错误,则open函数返回一个Image对象。现在,我们可以通过一些对象属性来检查文件内容,即:
1importImage
2?im=Image.open("j.jpg")
3?printim.format,im.size,im.mode
4JPEG(440,330)RGB
这里有三个属性,我们逐一了解。
format:识别图像的源格式,如果该文件不是从文件中读取的,则被置为None值。
size:返回的一个元组,有两个元素,其值为象素意义上的宽和高。
mode:RGB(truecolorimage),此外还有,L(luminance),CMTK(pre-pressimage)。
现在,我们可以使用一些在Image类中定义的方法来操作已读取的图像实例。比如,显示最新载入的图像:
1im.show()
2?
输出原图:
3.函数概貌。
3.1??ReadingandWritingImages:open(infilename),save(outfilename)
3.2??CuttingandPastingandMergingImages:
crop():从图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left,upper,right,lower),坐标系统的原点(0,0)是左上角。
paste():
merge():
1box=(100,100,200,200)
2?region=im.crop(box)
3?region.show()
4?region=region.transpose(Image.ROTATE_180)
5?region.show()
6?im.paste(region,box)
7?im.show()
其效果图为:
旋转一幅图片:
1defroll(image,delta):
2???"Rollanimagesideways"
3
4???xsize,ysize=image.size
5
6???delta=delta%xsize
7???ifdelta==0:returnimage
8
9???part1=image.crop((0,0,delta,ysize))
10???part2=image.crop((delta,0,xsize,ysize))
11???image.paste(part2,(0,0,xsize-delta,ysize))
12???image.paste(part1,(xsize-delta,0,xsize,ysize))
13
14???returnimage
3.3??几何变换。
3.3.1??简单的几何变换。
1out=im.resize((128,128))??????????#
2?out=im.rotate(45)???????????????#逆时针旋转45度角。
3?out=im.transpose(Image.FLIP_LEFT_RIGHT)???#左右对换。
4?out=im.transpose(Image.FLIP_TOP_BOTTOM)???#上下对换。
5?out=im.transpose(Image.ROTATE_90)??????#旋转90度角。
6?out=im.transpose(Image.ROTATE_180)??????#旋转180度角。
7out=im.transpose(Image.ROTATE_270)??????#旋转270度角。
各个调整之后的图像为:
图片1:
图片2:
图片3:
图片4:
3.3.2??色彩空间变换。
convert():该函数可以用来将图像转换为不同色彩模式。
3.3.3??图像增强。
Filters:在ImageFilter模块中可以使用filter函数来使用模块中一系列预定义的增强滤镜。
1importImageFilter
2imfilter=im.filter(ImageFilter.DETAIL)
3imfilter.show()
3.4??序列图像。
即我们常见到的动态图,最常见的后缀为.gif,另外还有FLI/FLC。PIL库对这种动画格式图也提供了一些基本的支持。当我们打开这类图像文件时,PIL自动载入图像的第一帧。我们可以使用seek和tell方法在各帧之间移动。
1importImage
2im.seek(1)????#skiptothesecondframe
3
4try:
5???while1:
6?????im.seek(im.tell()+1)
7?????#dosomethingtoim
8exceptEOFError:
9???pass
3.5??更多关于图像文件的读取。
最基本的方式:im=Image.open("filename")
类文件读取:fp=open("filename","rb");im=Image.open(fp)
字符串数据读取:importStringIO;im=Image.open(StringIO.StringIO(buffer))
从归档文件读取:importTarIO;fp=TarIo.TarIO("Image.tar","Image/test/lena.ppm");im=Image.open(fp)
基本的PIL目前就练习到这里。其他函数的功能可点击?这里?进一步阅读。
Python如何获取图片长宽等信息使用PIL模块,windows安装包下载:
使用方法
#?coding:?utf8
#?获取指定图片的长和宽
from?PIL?import?Image
img?=?Image.open("img.jpg")
print?img.size
运行结果:
(52,?54)
数字图像处理基于Python如何数一张图片的物体有多少个?如果要使用Python进行数字图像处理,可以使用OpenCV库来数一张图片的物体有多少个。
下面是一个简单的例子,可以使用OpenCV库来数一张图片中的小球数量:
importcv2
#读取图片
img=cv2.imread("balls.jpg")
#将图片转换为灰度图
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#使用阈值分割法,得到二值图
thresh=cv2.threshold(gray,127,255,cv2.THRESH_BINARY)[1]
#寻找图像中的轮廓
cnts=cv2.findContours(thresh.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts=imutils.grab_contours(cnts)
#显示图像中的轮廓数量
print("图像中的轮廓数量:{}".format(len(cnts)))
python操作ppt,如何判断幻灯片中有图片一、实现原理
其实实现原理很简单,我们的pptx文件其实是一个压缩包。我们可以直接修改pptx文件的后缀,改成zip然后解压,比如下面这个:
BTH0Q0$4CJH0}2VQP~06KH1.png
这是解压后的文件。我们可以在ppt目录下找到一个media目录,这个目录下就是我们要的图片的。这个目录包含了PPT的所有多媒体文件。
知道这点后,我们就可以选择用python来解压出PPT中的media目录就可以提取出所有图片了。
二、提取PPT中的图片
1、打开压缩包
在Python中提供了一个zipfile模块用于处理压缩包文件。我们来看看它的简单操作:
fromzipfileimportZipFile
#打开压缩文件
f=ZipFile("test.pptx")
#查看压缩包所有文件
forfileinf.namelist():
print(file)
#关闭压缩包文件
f.close()
输出的部分结果如下:
[Content_Types].xml
_rels/.rels
ppt/presentation.xml
ppt/slides/_rels/slide2.xml.rels
ppt/slides/slide1.xml
ppt/slides/slide2.xml
ppt/slides/slide3.xml
可以看到我们打印出了压缩包的文件。
2、解压文件
我们还可以通过下面的方式打开压缩包:
fromzipfileimportZipFile
withZipFile("test.pptx")asf:
forfileinf.namelist():
print(file)
通过with语句,就可以不显示地调用close方法。下面我们看看解压操作:
fromzipfileimportZipFile
withZipFile("test.pptx")asf:
forfileinf.namelist():
#解压文件
f.extract(file,path="unzip")
解压文件的操作通过f.extract来实现,这里传入了两个参数,分别是压缩包文件,和解压路径,如果压缩包有密码还需要传入解压密码。
然后我们还需要判断一下,如果是媒体目录我们才解压。我们添加一点代码:
fromzipfileimportZipFile
withZipFile("test.pptx")asf:
forfileinf.namelist():
#如果是media目录下的文件就解压
iffile.startswith("ppt/media/"):
f.extract(file,path="unzip")
这样我们就实现了PPT图片的提取。
三、提取PPT中的图片
我们把上面代码再完善一下:
importos
fromzipfileimportZipFile
#解压目录
unzip_path="unzip"
#如果解压目录不存在则创建
ifnotos.path.exists(unzip_path):
os.mkdir(unzip_path)
withZipFile("test1/test.pptx")asf:
forfileinf.namelist():
iffile.startswith("ppt/media/"):
f.extract(file,path=unzip_path)
这里我们就是添加了一个解压目录的创建,这样我们执行的时候就不会因为目录不存在而报错了。
结语:以上就是首席CTO笔记为大家整理的关于python如何判断图片内容多少的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~