ma251

C#,Pythonを使い始めました.試したことや,ひっかかったことをメモしていくのだ(…

ma251

C#,Pythonを使い始めました.試したことや,ひっかかったことをメモしていくのだ(自分用).楽にできて,とりあえず動けばよし♪

記事一覧

【Python】トリミングした動画の縦横比を自動で整えたい

【状況】トラッキングした物体の範囲ぴったりで切り抜いて動画を作ると,絵的に窮屈だし,縦横比がバラバラで扱いづらい 【対処】余白部分を入れて,縦横比は切り抜き前の…

ma251
1か月前

【Python】動画内の指定オブジェクトを追跡して自動トリミング(3)

【状況】特定した動画の領域を切り抜いて動画にしたい 【対処】ffmpegを使って切り抜いた動画を作成 前回,指定したオブジェクトが動く範囲の領域を求めたので,その領域…

ma251
1か月前
1

【Python】楽しようとmoviepy使ったのに結局ffmpeg

【状況】動画のトリミングを楽にしたくてmoviepyを使ってたのに,トリミングサイズの不具合が見つかった 【対処】ffmpegを使う 楽しようとしたけど動画のトリミング&エン…

ma251
1か月前

【Python】moviepy(1.0.3)の動画のクロップサイズ指定の不具合(たぶん)

【状況】動画の(x1, y1)-(x2, y2)の領域を切り抜いて別動画にしてくれるはずが,サイズがわずかに小さく切り取られて動画にエンコードしても再生できない. 【対処】x2, y2…

ma251
1か月前
1

【Python】動画内の指定オブジェクトを追跡して自動トリミング(2)

【状況】バウンディングボックス群を内包する長方形を求めたい 【対処】バウンディングボックス座標の最大値,最小値を求める 前回,指定したオブジェクトが動く範囲のバ…

ma251
2か月前

【Python】動画内の指定オブジェクトを追跡して自動トリミング(1)

【状況】動画内の複数のオブジェクトから選択して,そのオブジェクトの動く範囲を求めたい 【対処】YOLOv8を用いて検出したオブジェクトのバウンディングボックスを全て求…

ma251
2か月前
1

【Python】PyTorchのGPU版を使うのに少しつまづいた

【状況】PyTorchで画像処理系の重い処理は厳しい.PyTorchにはGPU版があるけど,標準ではCPU版がインストールされるので,自分でインストールする必要がありました. 【対…

ma251
2か月前

【Python】YOLOv8で人を追跡

【状況】映像に映っている人を追跡(トラッキング)したい.YOLOv8が良いらしい. 【対処】サンプルコード動かすだけで感動できる,のメモ 公式ページが充実サンプルもあ…

ma251
3か月前

【Python】pythonのインストール設定とOpenCV見つからない問題

【状況】他のライブラリを入れる際にバージョンによる相性があり,インストールをたまにするんだけど設定忘れるw 【対処】GPUを使うOpenCVをビルドして使った時の設定で,…

ma251
5か月前

【Processing】画面分割(2D, 3D, 3D)+メニュー表示

【状況】画面分割とメニュー表示を別々にやっていたので,合体してちゃんとできるのか試した!2D画面にプルダウンメニューを配置したい. 【対処】メニューは,メインウィ…

ma251
5か月前

【Processing】プルダウンメニューを日本語で使いたい

【状況】プルダウンメニューを使い,さらに日本語で出すのに一番楽な方法は何か模索.探したコードそのままでもうまく動かず.(Processing 4.3) 【対処】ControlP5を使う…

ma251
5か月前

【Processing】画面内を3Dと2Dのエリアに分割して使いたい

【状況】3D表示をしつつ,文字情報は右半分の2Dで表示したい.3D空間に文字を置いてもいいけど,文字に3Dの設定が及ばないようにするとか面倒なので,完全に独立させたか…

ma251
5か月前
1

【Python】Webカメラで使える解像度・fpsの一覧取得が遅すぎて絶望(→C#で作ったら1秒未満)

【状況】OpenCVで解像度とフレームレートを設定して記録するときに,うっかりそのカメラの仕様にないパラメータ(解像度,fps)を使っている場合,OpenCVが別の有効な数値…

ma251
5か月前

【Python】imageioを使ってWebカメラ映像をmp4リアルタイムエンコードしたらハマった

【状況】Webカメラの映像をリアルタイムエンコードして保存するだけだから簡単かと思ったら,機材によって挙動が変わるようなので試行錯誤.また,1920x1080にしたいのに,…

ma251
5か月前

【Python】現在時刻をmsで取得したい.ただし,当日の0時0分0秒を0msとする

【状況】時刻をmsで扱いたいが,当日の0時からの経過時間にしたい,という(たぶん)ニッチな仕様. 【対処】いろいろ方法はあるけど,現在時刻から今日の0時を引く計算が…

ma251
5か月前

【C#&Python】C#からファイル名を引数として与えてPythonを呼び出すときの不具合対応

【状況】C#からPythonを外部プロセス起動で呼び出し,フルパス表記したファイル名を引数にして渡して動作させたい.しかし,意図通りに引数が渡らなかった. 【対処】ファ…

ma251
5か月前
2
【Python】トリミングした動画の縦横比を自動で整えたい

【Python】トリミングした動画の縦横比を自動で整えたい

【状況】トラッキングした物体の範囲ぴったりで切り抜いて動画を作ると,絵的に窮屈だし,縦横比がバラバラで扱いづらい
【対処】余白部分を入れて,縦横比は切り抜き前の動画サイズに(だいたい)揃えて切り抜く

先に行った動画の切り抜きは,範囲がぴったりなので,データ処理用としては問題ないのですが,見せる動画としては,縦横比もバラバラですし,対象の周辺に少し余裕が欲しいと思いました.

サイズの定義を考える

もっとみる
【Python】動画内の指定オブジェクトを追跡して自動トリミング(3)

【Python】動画内の指定オブジェクトを追跡して自動トリミング(3)

【状況】特定した動画の領域を切り抜いて動画にしたい
【対処】ffmpegを使って切り抜いた動画を作成

前回,指定したオブジェクトが動く範囲の領域を求めたので,その領域だけを対象にmp4エンコードします.以前に作ったトリミング方法を利用します.

画像サイズの補正mp4にエンコードする際,画像サイズの縦横が16の倍数であることが望ましいので,値の補正を行います.ここでは,簡単にするため,領域右下の

もっとみる
【Python】楽しようとmoviepy使ったのに結局ffmpeg

【Python】楽しようとmoviepy使ったのに結局ffmpeg

【状況】動画のトリミングを楽にしたくてmoviepyを使ってたのに,トリミングサイズの不具合が見つかった
【対処】ffmpegを使う

楽しようとしたけど動画のトリミング&エンコードをしたくて,パッケージのインストールだけでよいmoviepy(1.0.3)を使っていたわけですが,特定の条件下においてトリミングサイズの不具合があることが分かりました.いつか修正されるかもしれませんが,ソースコードを書

もっとみる
【Python】moviepy(1.0.3)の動画のクロップサイズ指定の不具合(たぶん)

【Python】moviepy(1.0.3)の動画のクロップサイズ指定の不具合(たぶん)

【状況】動画の(x1, y1)-(x2, y2)の領域を切り抜いて別動画にしてくれるはずが,サイズがわずかに小さく切り取られて動画にエンコードしても再生できない.
【対処】x2, y2に1ずつ加えて切り抜き関数を呼び出す(という嫌なやり方で対応できたけど・・・ライブラリ変えますw)

切り抜いた動画が再生できない!縦横16の倍数にしてmp4エンコードしたはずなのに,できたファイルが再生できない.フ

もっとみる
【Python】動画内の指定オブジェクトを追跡して自動トリミング(2)

【Python】動画内の指定オブジェクトを追跡して自動トリミング(2)

【状況】バウンディングボックス群を内包する長方形を求めたい
【対処】バウンディングボックス座標の最大値,最小値を求める

前回,指定したオブジェクトが動く範囲のバウンディングボックス群を求めているので,その続き.最大値・最小値を求めればよいので簡単ですね.

領域の初期値を設定最初のフレームの幅と高さの情報(frame.shape)を用いて,最大値・最小値の初期値を設定しておきます.frame.s

もっとみる
【Python】動画内の指定オブジェクトを追跡して自動トリミング(1)

【Python】動画内の指定オブジェクトを追跡して自動トリミング(1)

【状況】動画内の複数のオブジェクトから選択して,そのオブジェクトの動く範囲を求めたい
【対処】YOLOv8を用いて検出したオブジェクトのバウンディングボックスを全て求める

ゴールは,特定のオブジェクトの動く範囲を求めて,その範囲のみの動画を生成することです.今回は,オブジェクトを選択してトレースできるところまでです.

まずはサンプルコードから公式サイトに,動画からフレームを切り出して処理をする

もっとみる
【Python】PyTorchのGPU版を使うのに少しつまづいた

【Python】PyTorchのGPU版を使うのに少しつまづいた

【状況】PyTorchで画像処理系の重い処理は厳しい.PyTorchにはGPU版があるけど,標準ではCPU版がインストールされるので,自分でインストールする必要がありました.
【対処】公式サイトに行ってダウンロード.ただし,使っているGPU(CUDAのバージョン)などによって選ぶ必要があります.

公式サイトを見る執筆時点で以下のような選択肢があります.なお,Python 3.8以降が必要,とあり

もっとみる
【Python】YOLOv8で人を追跡

【Python】YOLOv8で人を追跡

【状況】映像に映っている人を追跡(トラッキング)したい.YOLOv8が良いらしい.
【対処】サンプルコード動かすだけで感動できる,のメモ

公式ページが充実サンプルもあるのでかなり参考になります(日本語だし!)

環境設定pythonがインストールされている環境でインストール(執筆に利用したバージョンは3.10.9;諸事情により若干古いバージョンを入れています).

pip install ult

もっとみる
【Python】pythonのインストール設定とOpenCV見つからない問題

【Python】pythonのインストール設定とOpenCV見つからない問題

【状況】他のライブラリを入れる際にバージョンによる相性があり,インストールをたまにするんだけど設定忘れるw
【対処】GPUを使うOpenCVをビルドして使った時の設定で,調べればすぐ出てくる普通の内容だけど,自分用にメモ.

設定箇所以下,3.10.9をインストールする例.■は画面が切り替わったときの見出し.

■ Install Python 3.10.9(64bit)
「Add python.

もっとみる
【Processing】画面分割(2D, 3D, 3D)+メニュー表示

【Processing】画面分割(2D, 3D, 3D)+メニュー表示

【状況】画面分割とメニュー表示を別々にやっていたので,合体してちゃんとできるのか試した!2D画面にプルダウンメニューを配置したい.
【対処】メニューは,メインウィンドウにしか出せないことが分かり,そこが注意点だった.2D描画のあとにメニュー書くと良いらしい,のメモ

合体させたい内容プルダウンメニューを2D画面に張り付けたい仕様上,個別のウィンドウに張り付けられないようなので,2Dを描画した後にメ

もっとみる
【Processing】プルダウンメニューを日本語で使いたい

【Processing】プルダウンメニューを日本語で使いたい

【状況】プルダウンメニューを使い,さらに日本語で出すのに一番楽な方法は何か模索.探したコードそのままでもうまく動かず.(Processing 4.3)
【対処】ControlP5を使うのが一番楽みたい.ちょこちょこ設定を修正したら動いた,のメモ.

ControlP5を導入「スケッチ」→「ライブラリをインポート」→「Manege Libraries」
Filterに,「controlp5」を入れる

もっとみる
【Processing】画面内を3Dと2Dのエリアに分割して使いたい

【Processing】画面内を3Dと2Dのエリアに分割して使いたい

【状況】3D表示をしつつ,文字情報は右半分の2Dで表示したい.3D空間に文字を置いてもいいけど,文字に3Dの設定が及ばないようにするとか面倒なので,完全に独立させたかった(なんだか使ったことがないProcessingをやることになってしまった).(Processing 4.3)
【対処】createGraphicsで3D, 2D用の画面を個別に作って親画面内に配置するのが一番簡単みたい,のメモ.

もっとみる
【Python】Webカメラで使える解像度・fpsの一覧取得が遅すぎて絶望(→C#で作ったら1秒未満)

【Python】Webカメラで使える解像度・fpsの一覧取得が遅すぎて絶望(→C#で作ったら1秒未満)

【状況】OpenCVで解像度とフレームレートを設定して記録するときに,うっかりそのカメラの仕様にないパラメータ(解像度,fps)を使っている場合,OpenCVが別の有効な数値に置き換えて動作しようとするみたい(それで以前ハマった).そこで,使えるカメラパラメータを事前に調べたいと思いました.
【対処】OpenCVでは,当該カメラで使える解像度,fpsを列挙する機能がないので,設定(set)→取得(

もっとみる
【Python】imageioを使ってWebカメラ映像をmp4リアルタイムエンコードしたらハマった

【Python】imageioを使ってWebカメラ映像をmp4リアルタイムエンコードしたらハマった

【状況】Webカメラの映像をリアルタイムエンコードして保存するだけだから簡単かと思ったら,機材によって挙動が変わるようなので試行錯誤.また,1920x1080にしたいのに,1920x1088に自動的にされてしまう.
【対処】カメラの仕様によりOpenCVで指定したフレームレートに実際になっていなかったので,実際のfpsを取得して動画を設定.また,1920x1080にするため,ffmpegのマクロブ

もっとみる
【Python】現在時刻をmsで取得したい.ただし,当日の0時0分0秒を0msとする

【Python】現在時刻をmsで取得したい.ただし,当日の0時0分0秒を0msとする

【状況】時刻をmsで扱いたいが,当日の0時からの経過時間にしたい,という(たぶん)ニッチな仕様.
【対処】いろいろ方法はあるけど,現在時刻から今日の0時を引く計算がシンプルに見えたのでメモ.

import datetime# 現在の時刻を取得now = datetime.datetime.now()# 現在時刻を午前0時0分0秒に差し替えて,経過ミリ秒を計算する(microsecondがあるので

もっとみる
【C#&Python】C#からファイル名を引数として与えてPythonを呼び出すときの不具合対応

【C#&Python】C#からファイル名を引数として与えてPythonを呼び出すときの不具合対応

【状況】C#からPythonを外部プロセス起動で呼び出し,フルパス表記したファイル名を引数にして渡して動作させたい.しかし,意図通りに引数が渡らなかった.
【対処】ファイル名に空白が入っていると,引数が分割されしまうことが原因であることが分かったので,引数の渡し方を修正.なお,引数を渡して外部プログラムの呼出しをするとき,仕組み上,他の言語の組み合わせでも同じ不具合が起きるはず.

不具合が発生し

もっとみる