0, Python/OpenCVでのcv2.findTransformECCの引数について, 回答 前回は、Python(Anaconda)とOpenCVをインストールし、開発環境を構築しました。 今回は、実際にOpenCVを利用して画像処理を行っていこうと思います。 結果出力について. 今回はフォルダ内の画像を一括でリサイズするプログラムの紹介です画像を多く貼るブロガーさんやこれから画像系の機械学習を行う方は画像をリサイズする機会が多いはず…OpenCVを使ったPythonでサクッとできるようにしたので、ぜひご覧ください本 画像編集の基本「リサイズ(拡大・縮小)」をPythonでやっていきます。Pillowという画像編集ライブラリを使用します。 Python, OpenCVを用いてキャプチャした動画に対して、サイズが大きすぎるので、サイズを変更したいのですが、どのように修正すればいいでしょうか?, python size.pyの結果、毎フレーム(320, 320, 3)ではなく、(480, 640, 3)が表示される, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。. 画像処理を行い、処理後の画像表示は主に以下の方法があります。 ファイル出力; 画面出力 画像を多く貼るブロガーさんやこれから画像系の機械学習を行う方は画像をリサイズする機会が多いはず…, # ファイルの拡張子を調べる関数 def check_img(file_name): extention = file_name[-3:], if extention in {“jpg”, “JPG”, “png”, “PNG”}: result = True else: result = False, # リサイズするサイズを算出する関数 # widthかheightのどちらかが指定されていれば、 # アスペクト比を維持したままサイズを変更する。 # 両方指定されていれば、そのサイズにリサイズする def decide_size(img, width=None, height=None): if width is not None and height is None: height = int(img.shape[0] * (width / img.shape[1])) elif width is None and height is not None: width = int(img.shape[1] * (height / img.shape[0])), # ファイル名に日本語が含まれているかチェックする関数 def is_japanese(file_name): for ch in file_name: name = unicodedata.name(ch) if “CJK UNIFIED” in name \ or “HIRAGANA” in name \ or “KATAKANA” in name: return True return False, # 引数によって読み込み先を変える if len(args) >= 2: load_path = args[1] else: load_path = os.getcwd(), # カレントディレクトリを移動する os.chdir(load_path) cd = os.getcwd() print(“Change path here : {}” .format(cd)), # 読み込み先のディレクトリ内のファイルを取得 img_list = os.listdir(cd), # 保存用のフォルダを作成 save_path = os.path.join(“.”, SAVE_PATH) if os.path.exists(save_path): pass else: os.mkdir(save_path) print(“SAVE_PATH was just made now : “, save_path). 0 / クリップ # 画像ファイルのみをリサイズして保存 for num, img_name in enumerate(img_list): # 画像の拡張子をチェックする if check_img(img_name): print(“—– {} —–” .format(img_name)), # ファイル名に日本語が含まれているかチェックする if is_japanese(img_name): save_name = os.path.join(save_path, “resized_image_” + str(num) + “.jpg”) shutil.copy(img_name, save_name) img_name = save_name print(“Renamed : {}” .format(save_name)) else: save_name = os.path.join(save_path, img_name), # サイズを決めてリサイズする size = decide_size(img, WIDTH, HEIGHT) new_img = cv2.resize(img, dsize=size), # リサイズ後の画像を保存する if cv2.imwrite(save_name, new_img): print(“Succeced to save.”) else: print(“Faild to save.”), #上記ソースコード:98,99行目 size = decide_size(img, WIDTH, HEIGHT) new_img = cv2.resize(img, dsize=size), この2つの変数のどちらかに値を入れると、関数decide_sizeの中で自動でアスペクト比を保持したまま片方の値を計算してくれます, また、WIDTHとHEIGHTを両方指定した時はその値のサイズにリサイズすることができます, そのまま引数無しで起動すると現在の位置(カレントディレクトリ)にあるファイルをリサイズします, #上記ソースコード:79行目~ for num, img_name in enumerate(img_list): if check_img(img_name): (for文内は中略), 当たり前ですが、OpenCVのimread関数で画像ファイル以外を突っ込むとエラーが出ます, このプログラムではlistdir関数で対象のフォルダ内にある全てのファイルをリスト化して、それをfor文で回して読み込んでます, 調べ方はシンプルで、ファイル名の後ろ3文字をスライスで取得して、それが画像の拡張子がどうか判定します, なぜこの機能を付けたかというとOoenCVが日本語ファイル名の画像を読み込めないことが原因です, 日本語名のファイルをOpenCVのimread関数で読み込むと戻り値がNoneになります, まあプログラマーは普通日本語名のファイルなんて使わないから当然だよな~、と思いながらも読み取れないのは厄介なので自分なりに改善策を考えてみました, まずは、ファイルを読み取るときに名前に日本語が含まれているかを関数is_japanaseチェックします, そして日本語が含まれていたら対象のファイルを保存場所にコピーして、その場で「resized_image_*.jpg」という名前にリネームし、関数imreadに読み取らせます, 保存場所にコピーすることで最終的にリサイズに保存する際に上書きすることになり、コピーによる容量の増加を防ぐことができます, ちなみに関数is_japanaseに関してはこちらの方の記事をコピペ参考にさせていただきました、本当にありがとうございます!!, 日本語名のファイルはすべて「resized_image_*.jpg」という名前にする仕様になっています, 折角に画像の名前を整理して保存したのに、それを全部てきとーな名前に変えられちゃうのは悲しいよなぁ, ファイルを読み込む際に日本語名も保存して、リサイズ画像を保存し終わった際にリネームしなおすという荒業があるけど…, 今回は対象フォルダ内にある画像ファイルを任意のサイズにリサイズするプログラムの紹介でした, 以前CNNで簡単な顔認識プログラムを作ったときのコードに日本語対応などを加えて、自分なりに使いやすさを意識してみました, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 『ゆるーく頑張る』がモットーの理系大学院生です。研究で学んだことを書くはずだったのに、気づいたら別のジャンルばかり書いてます笑, ファッションとスイーツが大好きな理系大学院生が勉強したことや好きなことについてゆるーく書いていくブログです, 本記事ではcode prettifyが導入できていないためソースコードがかなり見づらいです。ご了承ください。またプログラムの実行は自己責任でお願いいたします。.

パース 奥行き 決め方, ダイソー スクラッチアート 花, デス プルーフ 感想, タガタメ 漆黒の血脈 8話, 義経 弁慶 関所, ミニベロ シートポスト 径, 台湾語 翻訳 無料, ソードアートオンライン 最新刊 24, 第五人格 推理の怪 衣装, エアコン 真空引き 時間, 鬼 滅 の刃 ご当地 キーホルダー 富山, 洋画 コメディ 女性, 台湾語 翻訳 無料, 読書感想文 まとめ 例文, トーマス 映画 上映時間, 北大阪急行 延伸 箕面森町, ビットフライヤー 総資産 見方, 攻略 共通テスト 東京書籍, なんで 急に そんな こと 言うの 英語, 大手町 千代田線 東西線 乗り換え エレベーター, 楽天カード キャッシング 特別優遇利率, 義経 弁慶 関所, 高校入試 覚えておくべき英単語 一覧, ドクターコパ 財布 2020, 不要 布 活用, 中1 英語 復習テスト, フラッシュカード 英語 授業, 好き 数字 4桁, 鷲 鷹 コンドル 違い, 河原町 ラーメン 仙台, プロスピa スピリッツ解放 3200, Android Fragment ライフサイクル, この世界の片隅に 周作 死, カブス キャップ ニューエラ, ハイエース 納期 遅れ, Iphone Ipad 写真 同期させない, 電子辞書 中学生 かわいい,