找回密码
 会员注册
查看: 13|回复: 0

python处理图片的10个库(非常详细)零基础入门到精通,收藏这一篇就够了

[复制链接]

9

主题

0

回帖

28

积分

新手上路

积分
28
发表于 2024-9-7 10:41:22 | 显示全部楼层 |阅读模式
Matplotlib类型:数据可视化库功能:创建线图、柱状图、散点图、直方图、饼图等多种静态图表,支持子图布局、色彩映射、图例、注解等高级定制。适用场景:科研论文、报告、数据分析展示。importmatplotlib.pyplotasplt``importnumpyasnp``x=np.linspace(0,2*np.pi,400)``y=np.sin(x**2)``plt.figure(figsize=(8,6))``plt.plot(x,y)``plt.title('SineofSquaredX')``plt.xlabel('X',fontsize=14)``plt.ylabel('Y',fontsize=14)``plt.grid(True)``plt.show()1PIL/Pillow类型:图像处理库功能:打开、修改、保存多种格式的图像文件,支持像素级操作、裁剪、旋转、缩放、颜色空间转换、滤镜应用等。适用场景:基本图像编辑、批处理、Web开发中的图像预处理。fromPILimportImage,ImageDraw,ImageFont``#创建一个空白图像``img=Image.new('RGB',(500,300),color='white')``#创建绘图对象``draw=ImageDraw.Draw(img)``#写入文字``font=ImageFont.truetype('arial.ttf',size=50)``text="Hello,World!"``text_width,text_height=font.getsize(text)``draw.text((img.width//2-text_width//2,img.height//2-text_height//2),text=text,fill='black',font=font)``#保存图像``img.save('hello_world.png')1字体下载链接:https://font.chinaz.com/120308013581.htmNumPy类型:数值计算库功能:提供高效的多维数组对象(ndarray),是处理图像数据的基础。图像通常被表示为NumPy数组,便于进行数学运算和算法处理。适用场景:图像数据的基本操作、与图像处理库配合使用。importnumpyasnp``importmatplotlib.pyplotasplt``#创建一个5x5的随机数组``img_array=np.random.randint(0,256,size=(5,5),dtype=np.uint8)``#显示数组作为灰度图像``plt.imshow(img_array,cmap='gray')``plt.colorbar()``plt.title('Random5x5ImageArray')``plt.show()1scikit-image(skimage)类型:计算机视觉库功能:提供大量图像处理算法,包括滤波、边缘检测、形态学操作、图像分割、特征提取、色彩空间转换等。适用场景:学术研究、工业应用中的图像分析与处理。fromskimageimportio``fromskimage.filtersimportsobel``frommatplotlibimportpyplotasplt````#读取图像``image=io.imread('example.jpg',as_gray=True)#替换成需要处理的图片``#应用Sobel边缘检测``edges=sobel(image)``#显示原图和边缘检测结果``fig,ax=plt.subplots(nrows=1,ncols=2,figsize=(10,5))``ax[0].imshow(image,cmap='gray')``ax[0].set_title('OriginalImage')``ax[1].imshow(edges,cmap='gray')``ax[1].set_title('SobelEdgeDetection')``plt.tight_layout()``plt.show()1OpenCV类型:计算机视觉库功能:高性能的图像与视频处理、物体检测与识别、跟踪、立体视觉、机器学习算法等。适用场景:实时视频处理、复杂图像分析、深度学习应用。importcv2``importnumpyasnp``#读取图像``image=cv2.imread('example.jpg')``#转为灰度图像``gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)``#应用Canny边缘检测``edges=cv2.Canny(gray,threshold1=100,threshold2=200)``#显示原图和边缘检测结果``cv2.imshow('OriginalImage',image)``cv2.imshow('CannyEdgeDetection',edges)``cv2.waitKey(0)``cv2.destroyAllWindows()1Seaborn类型:数据可视化库(基于Matplotlib)功能:提供更美观、更高级的数据可视化接口,专注于统计图形,如热图、箱线图、小提琴图、联合分布图等。适用场景:数据探索性分析、统计报告、交互式可视化。importseabornassns``importpandasaspd``importnumpyasnp``frommatplotlibimportpyplotasplt````#创建模拟数据``data=pd.DataFrame({'x':np.random.normal(size=100),``'y':np.random.normal(size=100),``'class':np.repeat(['A','B'],50)})``#绘制散点图并按类别着色``sns.scatterplot(data=data,x='x',y='y',hue='class',palette=['red','blue'])``plt.title('SeabornScatterplotwithClassColoring')``plt.show()1Plotly类型:数据可视化库功能:创建交互式图表,支持Web浏览器展示,包括2D/3D图表、地图、仪表盘等,可导出为HTML或嵌入到Web应用程序中。适用场景:Web应用的数据可视化、在线报告、动态交互式图表。importplotly.graph_objsasgo``importnumpyasnp``#创建数据``t=np.linspace(0,2*np.pi,100)``x=np.cos(t)``y=np.sin(t)``#构建Plotly图表对象``fig=go.Figure(data=[go.Scatter(x=t,y=x,name='Cosine'),``go.Scatter(x=t,y=y,name='Sine')])``#设置图表属性``fig.update_layout(title='PlotlyInteractivePlot',``xaxis_title='Time',``yaxis_title='Value')``#显示图表``fig.show()1Bokeh类型:数据可视化库功能:制作高性能交互式图表,支持大型数据集,输出为HTML,可在现代Web浏览器中展示,提供丰富的用户交互和实时更新能力。适用场景:大数据可视化、Web应用程序中的实时数据流展示、仪表盘构建。frombokeh.plottingimportfigure,show``frombokeh.ioimportoutput_notebook``importnumpyasnp``output_notebook()``t=np.linspace(0,2*np.pi,¼00)``x=np.cos(t)``y=np.sin(t)``p=figure(title="BokehInteractivePlot",plot_width=600,plot_height=400)``p.line(t,x,legend_label="cosine",line_width=2)``p.line(t,y,legend_label="sine",line_color="orange",line_width=2)``show(p)1Pycairo类型:矢量图形库绑定功能:通过Python接口调用Cairo库进行矢量图形绘制,支持SVG、PDF、PostScript等格式输出,保持图像无损缩放。适用场景:创建高质量的矢量图形、图标设计、打印出版物。importcairo``surface=cairo.ImageSurface(cairo.FORMAT_ARGB32,200,200)``ctx=cairo.Context(surface)``ctx.set_source_rgb(1,1,1)#Setbackgroundcolortowhite``ctx.rectangle(0,0,surface.get_width(),surface.get_height())``ctx.fill()``ctx.set_source_rgb(0,0,0)#Setdrawingcolortoblack``ctx.select_font_face("Sans")``ctx.set_font_size(32)``ctx.move_to(50,½0)``ctx.show_text("Hello,Pycairo!")``surface.write_to_png('hello_pycairo.png')1SimpleCV类型:计算机视觉库(封装了OpenCV、PIL、NumPy)功能:提供易用的API,简化计算机视觉任务,如图像获取、预处理、特征检测、物体识别等。适用场景:初学者快速上手计算机视觉项目、教育和原型开发。fromSimpleCVimportCamera,Display``#初始化摄像头``cam=Camera()``#创建显示窗口``disp=Display()``whileTrue:``#获取一帧图像``img=cam.getImage()``#对图像进行灰度处理``gray_img=img.grayscale()``#在窗口中显示图像``gray_img.show(disp)``#检查是否有按键事件(如'q'键按下退出循环)``ifdisp.isDone():``break``disp.destroy()1​为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 22:15 , Processed in 0.425860 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表