wordpress设置站点地址,随州程力网站建设,同一域名可以做相同网站吗,vi设计包含什么实际上前面我们就已经用到了图像的绘制#xff0c;如#xff1a;io.imshow(img)这一行代码的实质是利用matplotlib包对图片进行绘制#xff0c;绘制成功后#xff0c;返回一个matplotlib类型的数据。因此#xff0c;我们也可以这样写#xff1a;importmatplotlib.pyplot …实际上前面我们就已经用到了图像的绘制如io.imshow(img)这一行代码的实质是利用matplotlib包对图片进行绘制绘制成功后返回一个matplotlib类型的数据。因此我们也可以这样写importmatplotlib.pyplot as pltplt.imshow(img)imshow()函数格式为matplotlib.pyplot.imshow(X, cmapNone)X: 要绘制的图像或数组。cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。其它可选的颜色图谱如下列表颜色图谱描述autumn红-橙-黄bone黑-白x线cool青-洋红copper黑-铜flag红-白-蓝-黑gray黑-白hot黑-红-黄-白hsvhsv颜色空间 红-黄-绿-青-蓝-洋红-红inferno黑-红-黄jet蓝-青-黄-红magma黑-红-白pink黑-粉-白plasma绿-红-黄prism红-黄-绿-蓝-紫-...-绿模式spring洋红-黄summer绿-黄viridis蓝-绿-黄winter蓝-绿用的比较多的有gray,jet等如plt.imshow(image,plt.cm.gray)plt.imshow(img,cmapplt.cm.jet)在窗口上绘制完图片后返回一个AxesImage对象。要在窗口上显示这个对象我们可以调用show()函数来进行显示但进行练习的时候(ipython环境中)一般我们可以省略show()函数也能自动显示出来。from skimage importio,dataimgdata.astronaut()dstio.imshow(img)print(type(dst))io.show()显示为可以看到类型是matplotlib.image.AxesImage。显示一张图片我们通常更愿意这样写importmatplotlib.pyplot as pltfrom skimage importio,dataimgdata.astronaut()plt.imshow(img)plt.show()matplotlib是一个专业绘图的库相当于matlab中的plot,可以设置多个figure窗口,设置figure的标题隐藏坐标尺甚至可以使用subplot在一个figure中显示多张图片。一般我们可以这样导入matplotlib库import matplotlib.pyplot as plt也就是说我们绘图实际上用的是matplotlib包的pyplot模块。一、用figure函数和subplot函数分别创建主窗口与子图例:分开并同时显示宇航员图片的三个通道from skimage importdataimportmatplotlib.pyplot as pltimgdata.astronaut()plt.figure(numastronaut,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(numNone, figsizeNone, dpiNone, facecolorNone, edgecolorNone)所有参数都是可选的都有默认值因此调用该函数时可以不带任何参数其中num: 整型或字符型都可以。如果设置为整型则该整型数字表示窗口的序号。如果设置为字符型则该字符串表示窗口的名称。用该参数来命名窗口如果两个窗口序号或名相同则后一个窗口会覆盖前一个窗口。figsize: 设置窗口大小。是一个tuple型的整数如figsize(88)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来创建显示窗口与划分子图除了上面那种方法创建显示窗口和划分子图还有另外一种编写方法也可以如下例:importmatplotlib.pyplot as pltfrom skimage importdata,colorimgdata.immunohistochemistry()hsvcolor.rgb2hsv(img)fig, axes plt.subplots(2, 2, figsize(7, 6))ax0, ax1, ax2, ax3axes.ravel()ax0.imshow(img)ax0.set_title(Original image)ax1.imshow(hsv[:, :, 0], cmapplt.cm.gray)ax1.set_title(H)ax2.imshow(hsv[:, :,1], cmapplt.cm.gray)ax2.set_title(S)ax3.imshow(hsv[:, :,2], cmapplt.cm.gray)ax3.set_title(V)for ax inaxes.ravel():ax.axis(off)fig.tight_layout()#自动调整subplot间的参数直接用subplots()函数来创建并划分窗口。注意比前面的subplot()函数多了一个s该函数格式为matplotlib.pyplot.subplots(nrows1, ncols1)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(pad1.08, h_padNone, w_padNone, rectNone)所有的参数都是可选的调用该函数时可省略所有的参数。pad: 主窗口边缘和子图边缘间的间距默认为1.08h_pad, w_pad: 子图边缘之间的间距默认为 pad_inchesrect: 一个矩形区域如果设置这个值则将所有的子图调整到这个矩形区域内。一般调用为plt.tight_layout() #自动调整subplot间的参数三、其它方法绘图并显示除了使用matplotlib库来绘制图片skimage还有另一个子模块viewer也提供一个函数来显示图片。不同的是它利用Qt工具来创建一块画布从而在画布上绘制图像。例from skimage importdatafrom skimage.viewer importImageViewerimgdata.coins()viewerImageViewer(img)viewer.show()最后总结一下绘制和显示图片常用到的函数有函数名功能调用格式figure创建一个显示窗口plt.figure(num1,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,axesplt.subplots(2,2,figsize(8,8))ravel为每个子图设置变量ax0,ax1,ax2,ax3axes.ravel()set_title设置子图标题(与axes结合使用)ax0.set_title(first window)tight_layout自动调整子图显示布局plt.tight_layout()