0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenCVを使用して自作画像データをnumpy配列読み込み

Last updated at Posted at 2022-12-23

自前のjpg画像データを使用して機械学習とかさせたい

教本等ではkerasのload_mnist などで持ってきたのMNISTデータ等で学習している。

がしかし実用化とか考えるとmnist 等は利用しない自作データを持ってきて学習させるためにはndarray形式にさせる必要がある。

用意

画像のみが入っているフォルダを作成
右クリックプロパティとかでそのフォルダのアドレスを取得しておく

注意点

画像を格納しているフォルダは画像以外のデータが入っているとエラーを吐くので、画像のみとする

注意点

opencvの仕様か、そのままだとBGRで読み込まれる。必要に応じてRGBに変更してください

importしたもの

import os 
import numpy as np
import glob
import cv2

実行時のバージョン pip

  • numpy

      numpy  1.21.5
    
  • cv2

      opencv-python  4.6.0.66
    

作成したプログラム

#学習データの場所を指定
#学習データの場所を指定 アドレスの取得
train=glob.glob(os.path.join("address", '*'))
#address="/Users/User1/data/train"
#画像のサイズの指定
#横
x_size=256
#縦
y_size=320
#データの格納
x_train=[]
for j in range(len(train)):
        img=cv2.imread(os.path.join(train[j]))
        
        #グレイスケール変換を行うとき
        #img=cv2.cvtColor(timg,cv2.COLOR_BGR2GRAY)
        
        img=np.asarray(img)
        #指定したサイズに変更
        img_resize=cv2.resize(img,(x_size,y_size))
        #格納
        x_train.append(img_resize)
#正規化
x_train=np.float32(x_train)
x_train/=255

解説

trainとx_trainは別物

trainの説明

trainには参照先のフォルダ内の画像のアドレスがそれぞれ格納される

["/Users/User1/data/train/1.jpg","/Users/User1/data/train/2.jpg"......]
の様に格納される。

img=cv2.imread(os.path.join(train[j])

trainのj番目、"/Users/User1/data/train/〇〇.png"から画像を取得する

img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

これを入れるとグレースケール変換が行われる。

img=np.asarray(img)

numpy配列に変換

img_resize=cv2.resize(img,(x_size,y_size))

指定したサイズに変更

x_train.append(img_resize)

学習用の配列に追加

for文の後にnp.shape(x_train) すると、(枚数,縦,横)で読み込まれることが確認できる。

モデルに入れるとき

input_img = Input(shape=(size, size, 3))

のように指定する。この時白黒もしくはグレースケール変換したものであれば以下のようにする。

input_img = Input(shape=(size, size, 1))

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?