数字图像处理python代码下载,Python绘制图像

  数字图像处理python代码下载,Python绘制图像

  本文主要为大家介绍python数字图像处理图像的绘制实例。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010文本1。分别用图形函数和子图形函数创建主窗口和子图形。2.创建显示窗口,用子图分割子图。3.用其他方法绘制和显示。

  

目录

  实际上,我们以前已经使用过图像的绘制,例如:

  io.imshow(img)

  这行代码的本质就是用matplotlib包来绘制图片,绘制成功后会返回一个matplotlib类型的数据。因此,我们也可以这样写:

  将matplotlib.pyplot作为plt导入

  plt.imshow(img)

  imshow()函数的格式为:

  matplotlib.pyplot.imshow(X,cmap=None)

  要绘制的图像或数组。

  Cmap:色彩映射表(colormap),默认情况下在RGB(A)色彩空间中绘制。

  下面列出了其他可选的颜色映射:

  颜色描述秋红-橙-黄骨黑-白、x射线冷蓝-品红铜黑-铜旗红-白-蓝-黑灰黑-白热黑-红-黄-白hsvhsv颜色空间、红-黄-绿-蓝-品红-红地狱黑-红-黄-喷蓝-绿-黄-红岩浆黑-红-白粉红黑-粉-白等离子绿-红-黄棱镜红-黄-绿-蓝-紫-.-绿色模式春季洋红色-黄色夏季绿色

  plt.imshow(image,plt.cm.gray)

  plt.imshow(img,cmap=plt.cm.jet)

  在窗口上绘制图片后,返回一个AxesImage对象。要在窗口上显示这个对象,我们可以调用show()函数来显示,但是在练习的时候(在ipython环境下),一般我们可以省略show()函数或者自动显示。

  从skimage导入io,数据

  img=data . aerospace()

  dst=io.imshow(img)

  打印(类型(夏令时))

  io.show()

  显示为:

  如您所见,类型为“matplotlib.image.AxesImage”。展示一张图,我们通常更喜欢这样写:

  将matplotlib.pyplot作为plt导入

  从skimage导入io,数据

  img=data . aerospace()

  plt.imshow(img)

  plt.show()

  Matplotlib是一个专业的绘图库,相当于matlab中的plot。可以设置多个图形窗口,设置图形标题,隐藏坐标标尺,甚至可以使用支线剧情在一个图形中显示多个画面。一般来说,我们可以从马立克进口这个。

  tplotlib库:

  

import matplotlib.pyplot as plt

  也就是说,我们绘图实际上用的是matplotlib包的pyplot模块。

  

  

一、用figure函数和subplot函数分别创建主窗口与子图

  例:分开并同时显示宇航员图片的三个通道

  

from skimage import data

  import matplotlib.pyplot as plt

  img=data.astronaut()

  plt.figure(num=astronaut,figsize=(8,8)) #创建一个名为astronaut的窗口,并设置大小

  plt.subplot(2,2,1) #将窗口分为两行两列四个子图,则可显示四幅图片

  plt.title(origin image) #第一幅图片标题

  plt.imshow(img) #绘制第一幅图片

  plt.subplot(2,2,2) #第二个子图

  plt.title(R channel) #第二幅图片标题

  plt.imshow(img[:,:,0],plt.cm.gray) #绘制第二幅图片,且为灰度图

  plt.axis(off) #不显示坐标尺寸

  plt.subplot(2,2,3) #第三个子图

  plt.title(G channel) #第三幅图片标题

  plt.imshow(img[:,:,1],plt.cm.gray) #绘制第三幅图片,且为灰度图

  plt.axis(off) #不显示坐标尺寸

  plt.subplot(2,2,4) #第四个子图

  plt.title(B channel) #第四幅图片标题

  plt.imshow(img[:,:,2],plt.cm.gray) #绘制第四幅图片,且为灰度图

  plt.axis(off) #不显示坐标尺寸

  plt.show() #显示窗口

  

  在图片绘制过程中,我们用matplotlib.pyplot模块下的figure()函数来创建显示窗口,该函数的格式为:

  

matplotlib.pyplot.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None)

  

  所有参数都是可选的,都有默认值,因此调用该函数时可以不带任何参数,其中:

  num: 整型或字符型都可以。如果设置为整型,则该整型数字表示窗口的序号。如果设置为字符型,则该字符串表示窗口的名称。用该参数来命名窗口,如果两个窗口序号或名相同,则后一个窗口会覆盖前一个窗口。

  figsize: 设置窗口大小。是一个tuple型的整数,如figsize=(8,8)

  dpi: 整形数字,表示窗口的分辨率。

  facecolor: 窗口的背景颜色。

  edgecolor: 窗口的边框颜色。

  用figure()函数创建的窗口,只能显示一幅图片,如果想要显示多幅图片,则需要将这个窗口再划分为几个子图,在每个子图中显示不同的图片。我们可以使用subplot()函数来划分子图,函数格式为:

  

matplotlib.pyplot.subplot(nrows,ncols,plot_number)

  

  nrows: 子图的行数。

  ncols: 子图的列数。

  plot_number: 当前子图的编号。

  如:

  

plt.subplot(2,2,1)

  则表示将figure窗口划分成了2行2列共4个子图,当前为第1个子图。我们有时也可以用这种写法:

  

plt.subplot(221)

  两种写法效果是一样的。每个子图的标题可用title()函数来设置,是否使用坐标尺可用axis()函数来设置,如:

  

plt.subplot(221)

  plt.title("first subwindow")

  plt.axis(off)

  

  

二、用subplots来创建显示窗口与划分子图

  除了上面那种方法创建显示窗口和划分子图,还有另外一种编写方法也可以,如下例:

  

import matplotlib.pyplot as plt

  from skimage import data,color

  img = data.immunohistochemistry()

  hsv = color.rgb2hsv(img)

  fig, axes = plt.subplots(2, 2, figsize=(7, 6))

  ax0, ax1, ax2, ax3 = axes.ravel()

  ax0.imshow(img)

  ax0.set_title("Original image")

  ax1.imshow(hsv[:, :, 0], cmap=plt.cm.gray)

  ax1.set_title("H")

  ax2.imshow(hsv[:, :, 1], cmap=plt.cm.gray)

  ax2.set_title("S")

  ax3.imshow(hsv[:, :, 2], cmap=plt.cm.gray)

  ax3.set_title("V")

  for ax in axes.ravel():

   ax.axis(off)

  fig.tight_layout() #自动调整subplot间的参数

  

  直接用subplots()函数来创建并划分窗口。注意,比前面的subplot()函数多了一个s,该函数格式为:

  

matplotlib.pyplot.subplots(nrows=1,ncols=1)

  

  nrows: 所有子图行数,默认为1。

  ncols: 所有子图列数,默认为1。

  返回一个窗口figure, 和一个tuple型的ax对象,该对象包含所有的子图,可结合ravel()函数列出所有子图,如:

  

fig, axes = plt.subplots(2, 2, figsize=(7, 6))

  ax0, ax1, ax2, ax3 = axes.ravel()

  创建了2行2列4个子图,分别取名为ax0,ax1,ax2和ax3, 每个子图的标题用set_title()函数来设置,如:

  

ax0.imshow(img)

  ax0.set_title("Original image")

  如果有多个子图,我们还可以使用tight_layout()函数来调整显示的布局,该函数格式为:

  

matplotlib.pyplot.tight_layout(pad=1.08,h_pad=None,w_pad=None,rect=None)

  

  所有的参数都是可选的,调用该函数时可省略所有的参数。

  pad: 主窗口边缘和子图边缘间的间距,默认为1.08

  h_pad, w_pad: 子图边缘之间的间距,默认为pad_inches

  rect: 一个矩形区域,如果设置这个值,则将所有的子图调整到这个矩形区域内。

  一般调用为:

  

plt.tight_layout() #自动调整subplot间的参数

  

  

三、其它方法绘图并显示

  除了使用matplotlib库来绘制图片,skimage还有另一个子模块viewer,也提供一个函数来显示图片。不同的是,它利用Qt工具来创建一块画布,从而在画布上绘制图像。

  例:

  

from skimage import data

  from skimage.viewer import ImageViewer

  img = data.coins()

  viewer = ImageViewer(img)

  viewer.show()

  最后总结一下,绘制和显示图片常用到的函数有:

  函数名功能调用格式figure创建一个显示窗口plt.figure(num=1,figsize=(8,8)imshow绘制图片plt.imshow(image)show显示窗口plt.show()subplot划分子图plt.subplot(2,2,1)title设置子图标题(与subplot结合使用)plt.title('origin image')axis是否显示坐标尺plt.axis('off')subplots创建带有多个子图的窗口fig,axes=plt.subplots(2,2,figsize=(8,8))ravel为每个子图设置变量ax0,ax1,ax2,ax3=axes.ravel()set_title设置子图标题(与axes结合使用)ax0.set_title('first window')tight_layout自动调整子图显示布局plt.tight_layout()

  以上就是python数字图像处理图像的绘制详解的详细内容,更多关于python数字图像处理绘制的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: