2022.01.21このページでは、以下の画像のように既存の画像にmatplotlibで作成したグラフを透かして重ねる方法をご紹介していきます。やることは以下の通りです。0ベース画像をプログラム実行フォルダに準備1グラフ画像の作成2ベース画像のどこにグラフを張り付けるか指定3張り付ける際のグラフのサイズを指定4プログラム実行たったのこれだけやれば実行可能です。それではさっそくやっていきましょう。今回は以下の画像をベースに作業を実行していきます。(あまりサイズが小さい画像だと、必然的に張り付けるグラフの解像度も落ちますので、なるべく高解像度の画像を選ぶようにしましょう。今回はグラフを画像作成するために以下のプログラムを実行しています。dpi=300)こいつを実行すると実行フォルダに以下の画像が出力されているはずです。以降の作業はこの画像の白い部分を透かして、先ほどのベース画像と合成していくという作業を実施していきます。グラフ作成に関してもう少し詳しく知りたい、という方は以下の記事を参考にしてみて下さい。【python】matplotlibを使ったグラフ作成演習!サンプルデータで実演!スポンサーリンクグラフを張り付ける際の位置とサイズを指定する以降で紹介するサンプルコードの中では以降の4つの変数を指定することになります。mrgh:グラフ右端から画像の左端までのピクセル数mrgw:グラフ上端から画像の上端までのピクセル数figh:張り付けた際のグラフの大きさ(縦方向)figw:張り付けた際のグラフの大きさ(横方向)当然ですが、これらの値が張り付けるベース画像のサイズよりも大きかったりするとエラーになります。ベース画像のサイズをよく確認のうえ、指定するようにしてください。スポンサーリンク画像にグラフを透かして重ねるサンプルコードそれではここまで紹介した作業をまとめたプログラムをまとめてご紹介します。dpi=300)#グラフに画像を挿入する際のサイズ、位置指定#左上からの余白を指定(縦、横)mrgh=50mrgw=500#グラフのサイズを指定(縦、横)figh=1000figw=1500#グラフに画像を挿入する作業img=cv2.imread(pic_name,cv2.IMREAD_COLOR)grf=cv2.imread(grf_name,cv2.IMREAD_COLOR)grf=cv2.resize(grf,(figw,figh))#ここで背景の白い部分を透かしているgrf[:,:,:]=np.where(grf[:,:,:]>250,img[mrgh:mrgh+figh,mrgw:mrgw+figw,:],grf[:,:,:])fin=imgfin[mrgh:mrgh+figh,mrgw:mrgw+figw,:]=grf[:,:,:]#合成画像の出力cv2.imwrite(fin_name,fin)結構長いですが、やっていることはここまでに説明したとおりですし、コメントも付けていますので、ひとつひとつ読んでいけば理解できるはずです。スポンサーリンクサンプルコードの実行結果それでは最後に先ほどのサンプルコードを実行してみましょう。実行前のフォルダ内は以下のような状態です。プログラムを実行すると以下のようになりました。グラフ画像(grf.jpg)とそれを張り付けた合成画像(final.jpg)が作成されています。final.jpgは冒頭にも紹介したように以下のような画像です。グラフ作成を工夫すればこんな感じも対応できますね。スポンサーリンクおわりにというわけで今回はpython-openCVを使って、画像にグラフを重ねる方法をご紹介しました。資料作成の際などにぜひご活用ください。仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。⇒興味をもった方は【ヒガサラ】で検索してみてください。確実にスキルアップできるはずです。最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。コピーヒガシをフォローするスポンサーリンクヒガシヒガサラblogスポンサーリンクpython【python-openCV】画像内を3点クリック⇒なす角を計算する方法!このページではpythonを使って、以下の動画のように画像内のクリックした3点からなす角を算出する方法をご紹介していきます。基本的には画像内を3回左クリックするだけでOKです。※Python(無料のプログラミ...python【python】リストの概念&使い方を事例を使って詳細解説!初心者用!この記事では、python初心者向けにリストの概念を説明しています。実際の事例をベースに紹介していますので、初心者にも理解しやすい内容になっています。python【Python-openCV】画像を平滑化(Blur)処理する方法!処理内容の解説までこのページではPython-openCVを使って以下の画像のように、指定した画像を平滑化処理する方法をご紹介していきます。平滑化と言われると何のことかわかりにくいと思いますが、要はぼかし処理ですね。処...python【Python】PILを使って画像に縁付きの文字を挿入する方法!このページでは、PythonのPILを使って以下の画像のように、縁付きの文字を挿入する方法をご紹介していきます。PILでの縁付きの文字挿入に関しては様々な記事で紹介されていますが、なぜか私はそのやり方ではでき...python【python-openCV】画像に輝度のレンジバーを追加する方法!この記事では、python-openCVを使って、輝度分布画像に輝度のレンジバーを追加する方法をご紹介します。python【python-numpy】条件に応じて配列の数値を変換!np.whereの解説この記事では、python初心者向けに、numpyのnp.whereの使い方をご紹介します。条件に応じて配列内の数値を変換したい方はぜひご覧ください。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ご指摘ありがとうございます。修正させていただきましました。【python-openCV】背景画像に別の画像を合成する方法!やぎ2023.05.29こんにちは。書く必要があると思います。【python-openCV】背景画像に別の画像を合成する方法!サトシ2023.05.11承知しました。アドバイス本当にありがとうございます。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!ヒガシ2023.05.11/はフォルダの階層が変わることを意味しますので使えません。substitute関数などを使って別文字に変換してから実行すると良いと思います。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!サトシ2023.05.10何度もすみません。/を使うと出来ないみたいです。2001-001-1/4とかにしたいのですが、ファイルが見つかりませんとかパスが無効ですとなります。検索タイトルとURLをコピーしました。