显示图像 matplotlib常用技巧和方法【附代码】

显示图片的多种方式
拿到一张tensor格式的图片
plt.figure(“Image”) # 图像窗口名称
plt.imshow(img.numpy().transpose((1,2,0))) #维度变换一下
plt.show()

拿到一张opencv的图片
plt.imshow(img,cmap="gray") 
plt.show()


转成1维输出,彩色图会变色
import matplotlib.pyplot as plt
plt.imshow(img[-1])# 这里一定是一维的向量
plt.title('result')
plt.show()

单纯普通img类型图片输出
import os
from PIL import Image
import matplotlib.pyplot as plt
img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))
plt.figure("Image") # 图像窗口名称
plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show()


显示多幅图像单纯普通img类型
import os
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt

img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))
gray = img.convert('L')
r,g,b = img.split()
img_merged = Image.merge('RGB', (r, g, b))


plt.figure(figsize=(10,5)) #设置窗口大小
plt.suptitle('Multi_Image') # 图片名称
plt.subplot(2,3,1), plt.title('image')
plt.imshow(img), plt.axis('off')
plt.subplot(2,3,2), plt.title('gray')
plt.imshow(gray,cmap='gray'), plt.axis('off') #这里显示灰度图要加cmap
plt.subplot(2,3,3), plt.title('img_merged')
plt.imshow(img_merged), plt.axis('off')
plt.subplot(2,3,4), plt.title('r')
plt.imshow(r,cmap='gray'), plt.axis('off')
plt.subplot(2,3,5), plt.title('g')
plt.imshow(g,cmap='gray'), plt.axis('off')
plt.subplot(2,3,6), plt.title('b')
plt.imshow(b,cmap='gray'), plt.axis('off')

plt.show()


显示多张图像
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

titles = ['img','cvOpen','cvClose' ,'tophat','img_back']
images = [img, cvOpen,cvClose,tophat,img_back]
plt.figure(dpi=200) #指定输出像素大小
for i in range(len(images)):
    plt.subplot(1, len(images), i + 1)
    plt.imshow(images[i])
    plt.title(titles[i], fontsize=8)
    plt.xticks([]), plt.yticks([])
plt.show()


分两行显示
titles = ['img','cvOpen','cvClose' ,'tophat','img_back','thresh1']
images = [img, cvOpen,cvClose,tophat,img_back,thresh1]
plt.figure(dpi=200) #指定输出像素大小
for i in range(len(images)):
    plt.subplot(2, len(images)/2, i + 1)
    plt.imshow(images[i])
    plt.title(titles[i], fontsize=8)
    plt.xticks([]), plt.yticks([])
plt.show()



# 3. 图像显示 彩色的就用这个
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=100)
axes[0].imshow(img1[:,:,::-1])
axes[0].set_title("原图")
axes[1].imshow(dst[:,:,::-1])
axes[1].set_title("平移后结果")
plt.show()

灰度图用这个
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=100)
axes[0].imshow(img1,'gray')
axes[0].set_title("orign")
axes[1].imshow(dst,'gray')
axes[1].set_title("change")
plt.show()


常用显示图片方法---opencv,用matplot
def im_show(img,name=""):
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    plt.imshow(img)
    print(name)
    plt.show()
def grey_show(img,name="",dpi=100):
    plt.figure(dpi=dpi)
    plt.imshow(img,cmap="gray")
    print(name)
    plt.show()

其他问题

#BGR转RGB,方法1
img_rgb1 = cv2.merge([R, G, B])

#BGR转RGB,方法2
img_rgb2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

#BGR转RGB,方法3
img_rgb3 = img[:,:,::-1]


from d2l import torch as d2l

例子
hotdogs = [train_imgs[i][0] for i in range(8)]
not_hotdogs = [train_imgs[-i - 1][0] for i in range(8)]
d2l.show_images(hotdogs + not_hotdogs, 2, 8, scale=1.4);

显示图片 不同像素显示不同颜色
plt.imshow(img,cmap=‘viridis’)

Image.PIL 类型,灰度图转彩色图防止报错
from PIL import Image
image=image.convert(‘RGB’)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Matplotlib的进阶代码示例: 1. 设置字体大小和样式 ```python import matplotlib.pyplot as plt plt.rcParams.update({'font.size': 14, 'font.family': 'Times New Roman'}) ``` 2. 添加图例 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) plt.plot(x, y1, label='Sin') plt.plot(x, y2, label='Cos') plt.legend(loc='upper right') plt.show() ``` 3. 设置坐标轴范围和标签 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.xlim([0, 2*np.pi]) plt.ylim([-1, 1]) plt.xlabel('X Axis') plt.ylabel('Y Axis') plt.show() ``` 4. 添加文本注释 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.annotate('Maximum', xy=(np.pi/2, 1), xytext=(np.pi/2, 1.5), arrowprops=dict(facecolor='black', shrink=0.05)) plt.show() ``` 5. 使用子图 ```python import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) fig, axs = plt.subplots(2, 1) axs[0].plot(x, y1) axs[0].set_title('Sin') axs[1].plot(x, y2) axs[1].set_title('Cos') plt.show() ``` 这些示例代码可以帮助您更好地理解Matplotlib的高级功能。 ### 回答2: Matplotlib是一种Python的数据可视化库,可以帮助我们创建各种类型的图表和图形。下面是一些Matplotlib进阶代码的示例: 1. 子图划分: 使用`plt.subplot()`函数可以将整个绘图区域划分为多个子图,可以是网格状或自定义形状。可以通过指定行数、列数和子图位置来确定子图的位置。 2. 图表样式设置: 使用`plt.style`来设置图表的样式,如带有背景网格的`'ggplot'`风格或简洁的`'seaborn'`风格等。 3. 自定义图表颜色: 可以使用RGB、HEX或颜色名称等方式来自定义图表中的颜色。例如,通过`color`参数指定颜色,或者通过`plt.cm.colors`模块使用更高级的颜色映射。 4. 图表标签和注释: 使用`plt.xlabel()`和`plt.ylabel()`函数可以设置横轴和纵轴标签,使用`plt.title()`函数可以设置图表标题。可以使用`plt.annotate()`函数在图表上添加注释。 5. 图例设置: 使用`plt.legend()`来添加图例并设置其位置。可以选择在图表内部或外部显示图例,也可以使用`bbox_to_anchor`参数进行更精细的位置控制。 6. 坐标轴设置: 可以使用`ax.tick_params()`函数来设置坐标轴的刻度、标签和网格线的样式。可以通过设置`xlabelpad`和`ylabelpad`参数来调整坐标轴标签与坐标轴之间的间距。 7. 3D图形绘制: Matplotlib还提供了在三维空间中绘制点、线和曲面的功能。可以使用`mpl_toolkits.mplot3d`模块中的`Axes3D`对象来创建三维坐标系。 8. 动画效果: 通过使用`animation`模块,可以在Matplotlib中创建动画效果。可以使用`FuncAnimation`函数来生成一个动画对象,并通过`save()`函数将动画保存为视频或动态GIF。 这只是一些Matplotlib的进阶代码示例,实际应用中还有更多的功能和技巧。通过不断学习和实践,可以在数据可视化中充分发挥Matplotlib的优势。 ### 回答3: Matplotlib是一个用于绘制数据可视化图形的Python库。它提供了广泛的绘图选项和灵活的配置参数,使得用户可以轻松地创建各种类型的图形。 Matplotlib的进阶代码包括许多功能和技巧,可以让图形更加美观和具有专业水准。以下是一些可以用于进阶Matplotlib代码的示例: 1. 改变图形风格:Matplotlib提供了不同的图形风格供选择,可以通过设置`plt.style.use()`来更改图形的样式,例如:"ggplot"、"seaborn"、"fivethirtyeight"等。 2. 自定义颜色和线型:可以通过设置`plt.plot()`函数的`color`和`linestyle`参数来自定义图形的颜色和线型。 3. 添加图例和标签:可以通过`plt.legend()`函数来添加图例,通过`plt.xlabel()`和`plt.ylabel()`函数来添加坐标轴标签。 4. 设置坐标轴刻度:可以使用`plt.xticks()`和`plt.yticks()`函数来设置坐标轴的刻度值,并通过`rotation`参数来旋转刻度标签。 5. 添加注释和文本:可以使用`plt.text()`和`plt.annotate()`函数来添加注释和文本,以增加图形的可读性和说明性。 6. 子图布局和图形尺寸:可以使用`plt.subplots()`函数创建包含多个子图的布局,通过`plt.figure()`函数设置图形的尺寸和分辨率。 7. 使用各种图形类型:除了常见的折线图和散点图外,Matplotlib还支持绘制柱状图、饼图、箱线图、等高线图等多种图形类型。 8. 添加背景和网格线:可以使用`plt.grid()`函数来添加网格线,使用`plt.axhspan()`和`plt.axvspan()`函数来添加背景色。 9. 保存和导出图形:通过`plt.savefig()`函数可以将图形保存为常见的图像格式,如PNG、JPEG等。 10. 添加动画效果:使用Matplotlib的`animation`模块可以创建动画效果,通过逐帧绘制来展示数据的演变过程。 以上是进阶Matplotlib的一些常用代码示例,通过了解和运用这些功能,可以更加灵活地使用Matplotlib库来绘制专业水平的数据可视化图形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值