怎么用python显示一张图片 如何在python界面显示图片

\u8bf7\u95ee\u7528python+Django\u5982\u4f55\u663e\u793a\u56fe\u7247\u5462\uff1f\u5982\u4f55\u663e\u793a\u4e00\u4e2a\u7eaf\u9759\u6001\u7684HTMl?\u6025

\u8981\u663e\u793a\u56fe\u7247\u3001CSS\u3001JS\u4e4b\u7c7b\u7684\u9759\u6001\u6587\u4ef6\uff0c\u9700\u8981\u5728settings\u91cc\u914d\u7f6e\u9759\u6001\u6587\u4ef6\u76ee\u5f55\uff0c\u5c31\u662fMEDIA_ROOT\uff0cMEIDA_URL\uff0cSTATIC_ROOT\u548cSTATIC_URL\uff0c\u6bd4\u5982media/\uff0cstatic/\u3002\u5176\u5b9eDjango\u672c\u8eab\u662f\u4e0d\u8fdb\u884c\u9759\u6001\u6587\u4ef6\u5904\u7406\u7684\uff0c\u9759\u6001\u6587\u4ef6\u662f\u4ea4\u7ed9Web\u670d\u52a1\u5668\uff0c\u5982Apache\u6765\u5904\u7406\u7684\u3002\u8981\u663e\u793a\u4e00\u4e2a\u7eafHTML\u6587\u4ef6\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e48HTML\u6587\u4ef6\u62f7\u8d1d\u5230\u6a21\u7248\u76ee\u5f55\uff0c\u5728URL\u91cc\u6307\u5b9a\u8def\u7531\uff0c\u7136\u540e\u5199\u4e00\u4e2a\u89c6\u56fe\u51fd\u6570\uff0c\u76f4\u63a5\u4f7f\u7528render_to_response\u8fd9\u4e2a\u5feb\u6377\u65b9\u5f0f\u8fd4\u56de\u9759\u6001\u6a21\u7248
def staticView(request):
return render_to_response('static.html')\uff0c\u4f60\u53ef\u4ee5\u53c2\u8003\u6211\u7684\u4e2a\u4eba\u4ecb\u7ecd\u91cc\uff0c\u5728SAE\u4e0a\u7528Django\u505a\u7684\u535a\u5ba2

wxpython:
# \u4f7f\u7528wx.Image\u5f97\u5230\u5bf9\u8c61
bmp = wx.Image('bitmaps/image.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap()
gif = wx.Image('bitmaps/image.gif', wx.BITMAP_TYPE_GIF).ConvertToBitmap()
png = wx.Image('bitmaps/image.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap()
jpg = wx.Image('bitmaps/image.jpg', wx.BITMAP_TYPE_JPEG).ConvertToBitmap()

# \u628a\u5b83\u4eec\u663e\u793a\u51fa\u6765
pos = 10
wx.StaticBitmap(frame, -1, bmp, (10, pos), (bmp.GetWidth(), bmp.GetHeight()))

pos = pos + bmp.GetHeight() + 10
wx.StaticBitmap(frame, -1, gif, (10, pos), (gif.GetWidth(), gif.GetHeight()))

pos = pos + gif.GetHeight() + 10
wx.StaticBitmap(panel, -1, png, (10, pos), (png.GetWidth(), png.GetHeight()))

pos = pos + png.GetHeight() + 10
wx.StaticBitmap(frame, -1, jpg, (10, pos), (jpg.GetWidth(), jpg.GetHeight()))

\u5177\u4f53\u7684\u8bf7\u6839\u636e\u4f60\u7684\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\uff0c\u6700\u597d\u53bbhttp://www.wxpython.org/download.php#binaries
\u4e0b\u8f7dwxpython\u548cwxpython demo\u770b\u770b\uff0c\u8fd9\u4e2ademo\u5f88\u5f3a\u5927\u7684\u3002

  在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。
  一、matplotlib
  1. 显示图片
  复制代码
  import matplotlib.pyplot as plt # plt 用于显示图片
  import matplotlib.image as mpimg # mpimg 用于读取图片
  import numpy as np
  lena = 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 misc
  lena_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 misc
  misc.imsave('lena_new_sz.png', lena_new_sz)
  5.3 直接保存 array
  读取之后还是可以按照前面显示数组的方法对图像进行显示,这种方法完全不会对图像质量造成损失
  np.save('lena_new_sz', lena_new_sz) # 会在保存的名字后面自动加上.npy
  img = np.load('lena_new_sz.npy') # 读取前面保存的数组
  二、PIL
  1. 显示图片
  from PIL import Image
  im = 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 Image
  I = 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 mpimg
  from PIL import Image
  lena = mpimg.imread('lena.png') # 这里读入的数据是 float32 型的,范围是0-1
  im = Image.fromarray(np.uinit8(lena*255))
  im.show()
  5. RGB 转换为灰度图
  from PIL import Image
  I = Image.open('lena.png')
  I.show()
  L = I.convert('L')
  L.show()

用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()



  • 鎬庝箞鐢╬ython鏄剧ず涓寮犲浘鐗?
    绛旓細鐢╬ython鏄剧ず涓寮犲浘鐗囨柟娉曞涓嬶細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 浜嗭紝鍙互瀵瑰畠杩涜浠绘剰...
  • Python閲岀敤tkinter.ttk.Treeview琛ㄦ牸缁勪欢,鎬庝箞璁╁叾鏄剧ず鍥剧墖?
    绛旓細1. 棣栧厛锛屾垜浠渶瑕佸鍏kinter鍜宼kinter.ttk妯″潡銆俙``python import tkinter as tk import tkinter.ttk as ttk ```2. 鍒涘缓涓涓鍚嶄负App鐨勭被锛岀户鎵胯嚜tk.Frame銆俙``python class App(tk.Frame):```3. 鍦ˋpp绫荤殑鏋勯犲嚱鏁颁腑锛屾垜浠垱寤轰竴涓猅reeview缁勪欢锛屽苟璁剧疆鍏跺垪鍚嶄负'A'鍜'B'锛岄夋嫨妯″紡涓'non...
  • 闆跺熀纭瀛python鎬庝箞鎵撳紑鍥剧墖
    绛旓細棣栧厛锛屽鍏IL妯″潡銆傜劧鍚庯紝瀛樹竴涓浘鐗囨墍鍦ㄨ矾寰勫彉閲锛屾湰渚嬩腑鍥剧墖鍦╬y鏂囦欢鎵鍦ㄧ殑鐩綍涓嬶紝鎵浠ヤ娇鐢ㄧ浉瀵硅矾寰勬椂鐩存帴鐢ㄥ浘鐗囧悕鍗冲彲銆傞氳繃鍥剧墖璺緞鎵撳紑鍥剧墖image = Image.open(path)鎵撳嵃鍥剧墖淇℃伅print(image.size, image.format)璁剧疆澶у皬image.thumbnail((100, 200))淇濆瓨image.save('3.jpg')END 娉ㄦ剰浜嬮」 涔熷彲浠...
  • python鎬庝箞鎵撳紑鍥剧墖
    绛旓細浣跨敤python杩涜鏁板瓧鍥剧墖澶勭悊锛屽彲浠ヤ娇鐢╬illow鍖锛屽畠鏄敱PIL fork鍙戝睍鑰屾潵鐨勩備娇鐢ㄦ椂闇瑕乮mport浠嶱IL fork涓鍑恒傚悓鏃朵娇鐢╫pen()鍑芥暟鏉ユ墦寮鍥剧墖锛屼娇鐢╯how()鍑芥暟鏉ユ樉绀哄浘鐗囥
  • python plt.imshow 鎬庝箞鐢
    绛旓細1銆佺粰鍑轰竴寮犲浘鐗囥2銆佺敤python璇诲彇鍥剧墖锛歩mg = mpimg.imread('a.gif')娉ㄦ剰锛氳繖閲岀殑gif灏辨槸涓婂浘锛岃櫧鐒舵槸gif鏍煎紡锛屼絾鍗村彧鏈変竴甯у浘鐗囷紝鍥犳鏄彲浠ヨ鍙栫殑锛沬mg瀹為檯涓婃槸涓涓缁村垪琛ㄣ傛妸鏁扮粍鍦ㄨ浆鍖栦负鍥剧墖锛歱lt.imshow(img)锛3銆乮mg[:,:,1]鏄竴涓崟閫氶亾鍥惧儚锛屽簲璇ユ槸鐏板害鍥撅紝浣嗘槸matplotlib鏄剧ず鍑烘潵鐨...
  • 濡備綍鍦Pygame涓坊鍔涓寮犲浘鐗?
    绛旓細鍒涘缓绐楀彛骞鏄剧ず鑳屾櫙鍥剧墖銆傚彲浠ヤ娇鐢╬ygame.display.set_mode()鍑芥暟鍒涘缓绐楀彛锛岀劧鍚庝娇鐢╞lit()鍑芥暟灏嗚儗鏅浘鐗囩粯鍒跺埌绐楀彛涓娿備緥濡傦細pythonCopy codewindow = pygame.display.set_mode((800, 600))window.blit(background_image, (0, 0))pygame.display.flip()鍦ㄤ笂杩颁唬鐮佷腑锛屾垜浠垱寤轰簡涓涓澶у皬涓800x600鍍忕礌...
  • 鍦╬ython Image涓彲浠ョ敤show()鏉鏄剧ず鍥剧墖,浣嗘槸鏄剧ず浠ュ悗,涓嬮潰鐨勪唬鐮佸氨...
    绛旓細Image.show()鍑芥暟鏄繖涓牱瀛愮殑锛屽繀椤诲厛鍏充簡鍥剧墖绋嬪簭鎵嶅線涓嬭蛋銆備笉浣跨敤show锛屽imshow(BW)鍦 Matlab 7.0 涓紝浜岃繘鍒鍥惧儚鏄涓涓閫昏緫绫伙紝浠呭寘鎷 0 鍜 1 涓や釜鏁板笺傚儚绱 0 鏄剧ず涓洪粦鑹诧紝鍍忕礌 1 鏄剧ず涓虹櫧鑹层傛樉绀烘椂锛屼篃鍙氳繃NOT(~)鍛戒护锛屽浜岃繘鍒跺浘璞¤繘琛屽彇鍙嶏紝浣挎暟鍊 0 鏄剧ず涓虹櫧鑹诧紱1 鏄剧ず涓洪粦鑹...
  • pythondesigner涓摢涓ā鍧楀彲浠鏄剧ず鍥剧墖
    绛旓細pythondesigner涓笉鏄摢涓ā鍧楀彲浠鏄剧ず鍥剧墖銆傚洜涓簆ythonqtdesigner鏄剧ず鍥剧墖鏄湪鐣岄潰涓婄偣鍑烩滄樉绀哄浘鐗団濇寜閽,浼氳皟鐢╯crollarea绐楀彛鏄剧ず鍥剧墖,骞朵笉鏄摢涓ā鍧楀彲浠ユ樉绀哄浘鐗囷紝绐楀彛澶у皬鑳芥牴鎹浘鐗囧ぇ灏忚嚜鍔ㄨ皟鏁,浣嗘槸鏈澶т负1024*768,鍥剧墖杩囧ぇ灏辫鏈夋粴鍔ㄦ潯鏉ユ樉绀恒
  • 濡備綍鍦╬ython鐣岄潰鏄剧ず鍥剧墖
    绛旓細jpg = wx.Image('bitmaps/image.jpg', wx.BITMAP_TYPE_JPEG).ConvertToBitmap()鎶婂畠浠鏄剧ず鍑烘潵 pos = 10 wx.StaticBitmap(frame, -1, bmp, (10, pos), (bmp.GetWidth(), bmp.GetHeight()))pos = pos + bmp.GetHeight() + 10 wx.StaticBitmap(frame, -1, gif, (10, pos), (...
  • 鏍告缂栫▼python鎬庝箞瀵煎叆鍥剧墖?
    绛旓細瑕佸湪鏍告缂栫▼Python涓鍏ュ浘鐗囷紝鍙互浣跨敤Python鐨Pillow搴撱侾illow鏄疨ython鐨涓涓浘鍍澶勭悊搴擄紝鍙互鐢ㄤ簬鎵撳紑銆佹搷浣滃拰淇濆瓨澶氱鍥惧儚鏍煎紡銆備笅闈㈡槸涓涓畝鍗曠殑绀轰緥浠g爜锛屾紨绀轰簡濡備綍浣跨敤Pillow搴撳皢鍥剧墖瀵煎叆鏍告缂栫▼ from PIL import Image 鎵撳紑鍥剧墖鏂囦欢 img = Image.open('image.jpg')鏄剧ず鍥剧墖 img.show()鍦ㄨ繖涓...
  • 扩展阅读:python图片处理及识别 ... 如何用python打开图片 ... python手机在线编程入口 ... python符号含义大全 ... python初学编程必背 ... python基础代码大全 ... python基本命令大全 ... python打开图片的方法 ... python基础语法菜鸟 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网