今回は、csvデータを用いて、保存された値をもとに、画像の部分的な切り取りをする方法を記述していきます。
実行環境は、「google colaboratory」を用います。
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
この記事の主旨
今回は、上の画像と、「angou.csv」ファイルから暗号を読み取ります。
以下のファイル(csvファイルと画像のみ)を用います。(安全ですよ!笑)
zipファイルの中身はこんな感じです。
暗号を解読する手順は以下の通りです。
- google colaboratory上でcsvファイルを読み取る
- 処理する対象画像を、読み取った値から座標で切り取る
- メッセージが現れる
という流れです。よくわからないと思いますが、読み取るデータには、切り取るべく座標と縦、横の長さが保存されているということです。
扱うcsvファイルについて詳しく見ていきます。
csvファイルについて
csvファイルの中身は以下のように数字の羅列です。
1行に切り取る1画像の情報が保存されています。
左から、切り取り始める左端のx座標、y座標、その位置から、幅w、高さhをまとめたものです。
つまり、最初の1行目が意味するのは以下の通りです。
- x = A1 = 189
- y = A2 = 245
- w = A3 = 39
- h = A4 = 37
実際にプログラムを見ていきましょう!
暗号解読コードの作成
今回はとても短いです!
事前にGoogle Drive上に「words」フォルダを作成しておいてください!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import pandas as pd import cv2 from google.colab.patches import cv2_imshow # 任意でパスは変更してください。 save_path = '/content/drive/MyDrive/words/' df = pd.read_csv('angou1.csv', header=None, names=['x', 'y', 'w', 'h']) img = cv2.imread('picture.jpg') for i in range(len(df)): x, y, w, h = map(int, [df.iloc[i, 0], df.iloc[i, 1], df.iloc[i, 2], df.iloc[i, 3]]) sep = img[y : y + h, x : x + w] print(i, x, y, w, h) cv2_imshow(sep) cv2.imwrite(save_path + str(i) + ".jpg", sep) |
コード解説
まずは、複数のモジュールをインポートします。google colabでは、cv2による画面描写が出来ないので、cv2_imshowを用いて拡張させます。
今回のcsvファイルでは、ヘッダー情報がないので、各列に、見出しを付けます。
1 |
df |
と実行すると、データベースとして、csvの中身が見れます!
この値から、切り取る画像を保存するために、取得した値から
1 2 |
sep = img[y : y + h, x : x + w] |
で画像の一部を切り出します。
最後に、事前に作成した「words」フォルダに保存します。
結果
出力結果
Google Drive上の「words」フォルダの中身
しっかりと保存されてますね!
まとめ
今回は、csvファイルから、読み取った値をもとに、画像の切り取る方法を記述しました。複雑な処理も、短いコードで記述できるのがすごいですね!
最後に、用意したzipファイルには、「angou2.csv」も準備しているので、もしよろしければ遊んでやってください!
最後まで読んでいただきありがとうございます!
昔、自分が参考にしていたプログラミングについての書籍を紹介します。
非常にわかりやすい内容ですので参考にしてみてください!
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
パソコン操作にお困りではありませんか?
ExcelやWordなど、基本的なソフトの使い方がいまいちわからないという方には、「PCHack」という講座をオススメしています。スクールの中でもコストパフォーマンスに優れ、オンラインなのでどこでも好きな時間に学習できます。
3万円ほどでPC初心者を脱出したい方は参考にしてください。
【PC初心者必見!】パソコンの勉強方法が分からないならPCHack講座がオススメ!