デュビデュバの技術ブログ

主に機械学習系の記事を書いていきます。コメント大歓迎です。よろしくお願いします。

画像の連結(OpenCV)

メモ。このファイルのディレクトリの子ディレクトリにimgの中に、arrow_0.png~arrow_7.pngを入れておく。変数はQ Learningの時使ったやつなので、このままでは動かない。

# 画像を読み込んで concatenate することで,くっつけてる。
import cv2
import numpy as np
# 矢印画像を読み込んで concatenate することで,くっつけてる。
arrow_images = [cv2.imread(''.join([os.path.dirname(os.path.abspath("__file__")), '/img/arrow_{}.png'.format(i)])) for i in range(env.nA)]
arrow_table = None
arrow_row = None

for i in range(q_table.shape[0]):
    if i % env.ncol == 0:
        if np.any(arrow_row):
            if np.any(arrow_table):
                arrow_table = np.concatenate([arrow_table, arrow_row], axis=0)
            else:  # 最初の行が完成した時
                arrow_table = arrow_row
        arrow_row = arrow_images[q_table_max[i]]  # i=0のとき
    else:
        arrow_row = np.concatenate([arrow_row, arrow_images[q_table_max[i]]], axis=1)
arrow_table = np.concatenate([arrow_table, arrow_row], axis=0)

cv2.imwrite('data/arrow_table.png', arrow_table)