初めに(^ω^)
以前の投稿で、グレースケール画像の作成に成功しました(やったね!)
その画像を用いて面白いことができないかと考えた結果です
画素値を上手に扱えたら便利なんだよということを知ってほしかったため作りました
作成したソースコード
# -----------------------------------------
# OpenCVとNumPy環境におけるグレースケール画像を用いた画素値反転
# -----------------------------------------
import numpy as np
import cv2
hoge = './'
# 保存先指定
file = './text8.txt'
# カラー読み込み
img = cv2.imread(hoge+'shigure.png')
# グレースケールで読み込み
img2 = cv2.imread(hoge+'shigure.png',0)
# Numy配列に保存
im = np.array(img2)
# 画像サイズ取得
shape = im.shape
# 閾値設定
Threshold = 220
for y in range(shape[0]):
for x in range(shape[1]):
if im[x][y] >= Threshold:
im[x][y] = 0
# 色反転
for y in range(shape[0]):
for x in range(shape[1]):
im[x][y] = 255 - im[x][y]
# テキスト出力
np.savetxt(file, im, fmt="%3.0f", delimiter=",")
# 配列出力
print (im)
# 画像出力
cv2.imwrite(hoge+'gray.png', im)
結果
コード解説
①画素値反転
# 色反転
for y in range(shape[0]):
for x in range(shape[1]):
im[x][y] = 255 - im[x][y]
画像の画素値を扱う際に、2次元配列として扱うことができるといろいろと便利だったりします。
今回のソースで閾値等使ってますが次回以降に詳しい解説をしたいと考えています(願望)
参考文献
とくにないかも
目次のようなもの
Re:ゼロから始める機械学習生活(深層学習もあるよ)
ここに進捗状況等を載せてます。
今まで書いたものを一覧にしていたりするので見てみてください!