python 图片相关

本篇介绍两种方式来打开图片.

1: 使用matplotlib

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/11/27 下午1:59 .
@Email:
@Describe:
"""
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from PIL import Image
import os
img = mpimg.imread("img/test.jpg")
plt.imshow(img)
plt.show()

这里使用matplotlib.pyplot库显示图片.

其中mpimg.imread 是可以替换成plt.imread的.两者效果一样.

原因如下:

@_copy_docstring_and_deprecators(matplotlib.image.imread)
def imread(fname, format=None):
return matplotlib.image.imread(fname, format)

2: 使用PIL库

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/11/27 下午1:59 .
@Email:
@Describe:
"""
from PIL import Image
import os
# 打开图片
img = Image.open("img/test.jpg")
img.show(title="test")

注意: img.show需要指定title参数.如果使用img.show().错误如下:

Traceback (most recent call last):
File "/home/zh/workSpace/python/Test1/venv/ImageTest.py", line 22, in <module>
img.show()
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 2146, in show
_show(self, title=title, command=command)
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 3085, in _show
_showxv(image, **options)
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 3091, in _showxv
ImageShow.show(image, title, **options)
File "/usr/lib/python3/dist-packages/PIL/ImageShow.py", line 47, in show
if viewer.show(image, title=title, **options):
File "/usr/lib/python3/dist-packages/PIL/ImageShow.py", line 67, in show
return self.show_image(image, **options)
File "/usr/lib/python3/dist-packages/PIL/ImageShow.py", line 87, in show_image
return self.show_file(self.save_image(image), **options)
File "/usr/lib/python3/dist-packages/PIL/ImageShow.py", line 168, in show_file
subprocess.Popen(args)
File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1639, in _execute_child
self.pid = _posixsubprocess.fork_exec(
TypeError: expected str, bytes or os.PathLike object, not NoneType

另外,可以获取当前脚本的目录,拼接绝对路径来设置.

具体代码如下:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/11/27 下午1:59 .
@Email:
@Describe:
"""
from PIL import Image
import o # 获取当前脚本所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接图片文件路径
image_path = os.path.join(current_dir, 'img/test.jpg')
print(image_path) img = Image.open(image_path)
img.show(title="test")

python 图片相关的更多相关文章

  1. 微信小程序--图片相关问题合辑

    图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.preview ...

  2. Mac os 下 python爬虫相关的库和软件的安装

      由于最近正在放暑假,所以就自己开始学习python中有关爬虫的技术,因为发现其中需要安装许多库与软件所以就在这里记录一下以避免大家在安装时遇到一些不必要的坑. 一. 相关软件的安装:   1. h ...

  3. 教程,Python图片转字符堆叠图

    Python 图片转字符画 一.实验说明 1. 环境登录 无需密码自动登录, 2. 环境介绍 本实验环境采用带桌面的UbuntuLinux环境,实验中会用到桌面上的程序: LX终端(LXTermina ...

  4. Python 图片转字符画

    Python 图片转字符画 一.课程介绍 1. 课程来源 原创 2. 内容简介 本课程讲述怎样使用 Python 将图片转为字符画 3. 前置课程 Python编程语言 Linux 基础入门(新版) ...

  5. python 图片在线转字符画预览

    文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中 ...

  6. python数组相关知识

    1.np中的reshape函数,可以把矩阵重新划分成m行n列. arange(n)可以把 [0,n-1]装入数组中,一定要注意的是img.reshape()并不会改变原来的数组,所以需要另外新建一个数 ...

  7. media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面

    一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...

  8. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  9. python图片处理(一)

    python图片处理需要先在cmd里面安装Pillow pip install Pillow 一.图片的打开与显示 from PIL import Image img=Image.open('d:/d ...

  10. python图片处理(三)

    ji那天用到了python图片处理中的二值图像的骨架提取,在matlab中通过输入图像的二值,来处理得到图像的骨架, skelimage = bwmorph(im, 'skel', inf); 在ma ...

随机推荐

  1. 入门篇-其之一-第一个Java程序

    ️注意: 本文中包含实际操作,需要安装JDK.如果需要安装JDK,请按照这篇文章的步骤进行安装:点我查看JDK安装教程 小白可以多看几遍这篇文章,多敲几次代码 前面我们已经安装了JDK,接下来就是写一 ...

  2. 2.14 PE结构:地址之间的转换

    在可执行文件PE文件结构中,通常我们需要用到地址转换相关知识,PE文件针对地址的规范有三种,其中就包括了VA,RVA,FOA三种,这三种该地址之间的灵活转换也是非常有用的,本节将介绍这些地址范围如何通 ...

  3. padans 常用的统计方法

    #coding=utf-8import pandas as pdimport numpy as npfile="./IMDB-Movie-Data.csv"data=pd.read ...

  4. k8s1.25版本上实践 Ingress-nginx

    背景: 领导要求的最新最新版本k8s...使用ingress-nginx 对外暴露内部服务 环境 节点 master worker 主机/ip calico-master01/192.168.195. ...

  5. c语言代码练习4(改进)

    #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <wi ...

  6. Arduino 麦克风声音传感器指南

    麦克风声音传感器 麦克风声音传感器,顾名思义,检测声音.它可以测量声音的响度. 这些传感器的种类繁多.  在下图中,您可以看到 Arduino 最常用的. 最左边是KY-038,右边是LM393麦克风 ...

  7. 使用CEF(六)— 解读CEF的cmake工程配置

    距离笔者的<使用CEF>系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看<使用CEF(一)- 起步>编写的内容,文笔稚嫩,内容单薄是显而 ...

  8. 聊聊Maven的依赖传递、依赖管理、依赖作用域

    1. 依赖传递 在Maven中,依赖是会传递的,假如在业务项目中引入了spring-boot-starter-web依赖: <dependency> <groupId>org. ...

  9. 可观测性数据收集集大成者 Vector 介绍

    如果企业提供 IT 在线服务,那么可观测性能力是必不可少的."可观测性" 这个词近来也越发火爆,不懂 "可观测性" 都不好意思出门了.但是可观测性能力的构建却着 ...

  10. liunx知识点--umask

    介绍 umask(user's mask)用来设置文件权限掩码.权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限. UNIX最初实现时不包含umask命 ...