1. 怎么用python显示一张图片
用python显示一张图片方法如下:
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as nplena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理
lena.shape #(512, 512, 3)plt.imshow(lena) # 显示图片plt.axis('off') # 不显示坐标轴
plt.show()
2. 使用Python爬虫下载图片,得到的图片不显示
你需要检查一下你的结果,看看是否请求成功了。可能服务器返回的并不是一个图片,但是你强制给他写入到图片格式文件中了,所以没办法显示。你可以通过输出response或者使用抓包软件来检查。
3. Python显示图片cv2.waitKey(0)报错问题
报错是你多加了一个参数,但是这里面是应该能加参数none和0是代表无限延迟,而整数数字代表延迟多少ms,返回值是你按键的asii值.你可以再检查下你的0是否是英文版的0,或者可能是你编译器或者版本的问题,我的就很正常,没报错
4. 怎么用python显示一张图片
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。一、matplotlib1. 显示图片复制代码import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片import numpy as nplena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理lena.shape #(512, 512, 3)plt.imshow(lena) # 显示图片plt.axis('off') # 不显示坐标轴plt.show()复制代码2. 显示某个通道复制代码# 显示图片的第一个通道lena_1 = lena[:,:,0]plt.imshow('lena_1')plt.show()# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:plt.imshow('lena_1', cmap='Greys_r')plt.show()img = plt.imshow('lena_1')img.set_cmap('gray') # 'hot' 是热量图plt.show()复制代码3. 将 RGB 转为灰度图matplotlib 中没有合适的函数可以将 RGB 图转换为灰度图,可以根据公式自定义一个:复制代码def rgb2gray(rgb):return np.dot(rgb[…,:3], [0.299, 0.587, 0.114])gray = rgb2gray(lena)# 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))plt.imshow(gray, cmap='Greys_r')plt.axis('off')plt.show()复制代码4. 对图像进行放缩这里要用到 scipy复制代码from scipy import misclena_new_sz = misc.imresize(lena, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸plt.imshow(lena_new_sz)plt.axis('off')plt.show()复制代码5. 保存图像5.1 保存 matplotlib 画出的图像该方法适用于保存任何 matplotlib 画出的图像,相当于一个 screencapture。plt.imshow(lena_new_sz)plt.axis('off')plt.savefig('lena_new_sz.png')5.2 将 array 保存为图像from scipy import miscmisc.imsave('lena_new_sz.png', lena_new_sz)5.3 直接保存 array读取之后还是可以按照前面显示数组的方法对图像进行显示,这种方法完全不会对图像质量造成损失np.save('lena_new_sz', lena_new_sz) # 会在保存的名字后面自动加上.npyimg = np.load('lena_new_sz.npy') # 读取前面保存的数组二、PIL1. 显示图片from PIL import Imageim = Image.open('lena.png')im.show()2. 将 PIL Image 图片转换为 numpy 数组im_array = np.array(im)# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝3. 保存 PIL 图片直接调用 Image 类的 save 方法from PIL import ImageI = Image.open('lena.png')I.save('new_lena.png')4. 将 numpy 数组转换为 PIL 图片这里采用 matplotlib.image 读入图片数组,注意这里读入的数组是 float32 型的,范围是 0-1,而 PIL.Image 数据是 uinit8 型的,范围是0-255,所以要进行转换:import matplotlib.image as mpimgfrom PIL import Imagelena = mpimg.imread('lena.png') # 这里读入的数据是 float32 型的,范围是0-1im = Image.fromarray(np.uinit8(lena*255))im.show()5. RGB 转换为灰度图from PIL import ImageI = Image.open('lena.png')I.show()L = I.convert('L')L.show()
5. python一个显示图片的问题
第五行那个括号里改为:file=r‘C:\WPython27’试试。。。
6. python PIL无法显示图片,也没有报错啊
PIL显示图片是生成一个临时图片,再用图片查看器打开图片,然后删除该图片在windows系统下打开临时图片的操作有点滞后于删除该图片的操作,所以会不能显示解决办法如下:编译ImageShow.py文件,路径类似C:\Python27\lib\site-packages\PIL\ImageShow.py在99行左右将原来的代码:"start /wait %s && del /f %s" % (file, file)修改成:"start /wait %s && PING 127.0.0.1 -n 5 > NUL && del /f %s" % (file, file)这里引入一些无用的操作,使删除图片的时间稍微推后,保证打开图片的操作完成
7. python的PIL模块,为什么image.show()显示不了图片
很有可能是文件没找到证明方法:from PIL import Imageimport osfn = r'C:\tmp\2.bmp' # 改成你的路径if os.path.isfile(fn):image = Image.open()image.show()else:print('not found')
8. python plt.plot怎么把图显示出来
1, 导入matplotlib.pyplot, numpy 包:import numpy as npimport matplotlib.pyplot as plt2,添加主题样式:plt.style.use('mystyle')3, 设置图的大小,添加子图:fig = plt.figure(figsize=(5,5))ax = fig.add_subplot(111)4,绘制sin, cos:x = np.arange(-np.pi, np.pi, np.pi / 100)y1 = np.sin(x)y2 = np.cos(x)sin, = ax.plot(x, y1, color='red', label='sin')cos, = ax.plot(x, y2, color='blue', label='cos')ax.set_ylim([-1.2, 1.2])
第二种方式 拆分显示sin_legend = ax.legend(handles=[sin], loc='upper right')ax.add_artist(sin_legend)ax.legend(handles=[cos], loc='lower right')plt.show()import numpy as npimport matplotlib.pyplot as plt# 添加主题样式plt.style.use('mystyle')# 设置图的大小,添加子图fig = plt.figure(figsize=(5,5))ax = fig.add_subplot(111)for color in ['red', 'green']:n = 750x, y = np.random.rand(2, n)scale = 200.0 * np.random.rand(n)ax.scatter(x, y, c=color, s=scale,label=color, alpha=0.3,edgecolors='none')ax.legend() ax.grid(True)plt.show()
9. 在python Image中可以用show()来显示图片,但是显示以后,下面的代码就不运行了,如何运行下面的代码
Image.show()函数是这个样子的,必须先关了图片程序才往下走。
不使用show,如imshow(BW)在 Matlab 7.0 中,二进制图像是一个逻辑类,仅包括 0 和 1 两个数值。像素 0 显示为黑色,像素 1 显示为白色。显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值 0 显示为白色;1 显示为黑色。
例如: imshow(~BW)
扩展资料:
不使用show函数来满足运行的需求:
import threading
import Image
class ThreadClass(threading.Thread):
def run(self):
im=Image.open('z.jpg')
im.show()
print (1)
t = ThreadClass()
t.start()
print (2)
a=input('End')
#===============================
图像的表示原理:
最基本的物理图像是根据矩形网格抽样原理从连续图像域中抽取二维灰度阵列(矩阵)得到的。也可以用长向量表示二维灰度矩阵,它是按列(或行)扫描灰度矩阵,把下一列(或行)的头和前一列(或行)的尾相接而成。
它们的线性可逆变换同样可以用来表示图像。图像的每一行由行程(具有同一灰度的邻近像元集合)序列所组成,因此也可以用行程长度编码(见图像编码)表示图像。
未经允许不得转载:山九号 » python显示文件里的图片|使用Python爬虫下载图片得到的图片不显示