为了账号安全,请及时绑定邮箱和手机立即绑定

Python for 循环中的子图

Python for 循环中的子图

收到一只叮咚 2021-08-17 10:37:36
我从 SQL 搜索中收到了一个字典,然后我想遍历字典以在 x、y、h、w 上裁剪图像。然后我想显示原始图像,一个编辑过的图像。这我已经完成了。我无法弄清楚的是如何使用 matplotlib.pyplot 在图中显示结果。这是我的代码:sql_result = get_rois(config, "145", "a")img_dir = '../imgs/'make palaeographical chartfig = plt.figure()#Iterate over the listfor num, result in enumerate(aleph_rois):    #make path to image    img_path = os.path.join(imgs, sql_result['file_name'])    #declare variables for cropping character    x = sql_result['x']    y = sql_result['y']    w = sql_result['w']    h = sql_result['h']    #crop to character    img = cv2.imread(img_path, 0)    crop = img[y:y+h, x:x+w]    th0 = cv2.adaptiveThreshold(crop, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 21, 2)    #OTSU Binarization to fill    blur = cv2.GaussianBlur(crop,(5,5),0)    ret, th1 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)    frg_loc = str(sql_result['artefact_siglum']) + " " + str(result['line_id']) + " roi:" + str(sql_result['roi_id'])    #create fig    plt.title(frg_loc)    plt.imshow(th1, cmap='Greys_r')以上显然是失败的。我尝试了几种选择,我认为我遇到了图像中图像相互覆盖的问题。但目标是在 2 列图中包含 th0 和 th1,行由 sql_results 中的结果数定义。很感谢任何形式的帮助。谢谢你。
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

我不完全确定我的理解是否正确 - 但是,至少作为讨论的开始:


import matplotlib.pyplot as plt


N = 3

fig, axs = plt.subplots(N, 2)

for row in range(N):

    axs[row, 0].imshow(th0)

    axs[row, 1].imshow(th1, cmap = 'Reds_r')

结果是

//img1.sycdn.imooc.com//611b210a0001e03e05190447.jpg

查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信