質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1327閲覧

pythonで,cv2のウィンドウ表示をmultiprocess動作させたい

Poly_Zeta

総合スコア11

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/25 18:04

python3.7を使用

タイトルではまとまりきらなかったので最終的に作りたいものをちゃんと説明すると,

・メイン内は無限ループ ー・cv2を利用し,webCamの画像を取得 ー・cv2で加工 ー・〃表示 ー・先頭に戻る

としているところを,

・マルチプロセス動作する関数内 ー・〃表示 ・メイン内は無限ループ ー・cv2を利用し,webCamの画像を取得 ー・cv2で加工 ー・先頭に戻る

として,表示のみマルチプロセス動作させたい.

そのためには,ndarrayを共有メモリに乗っける必要がありそうだと思ったので
次のurlのページの,サンプル2のコードを借りてその動作を試した.
https://qiita.com/maiueo/items/b3021a8803859d35a46f

実行すると以下のようなエラーを吐いた.

PS D:\Users\poly_Z\Documents\splatmusicprj> py -3.7 .\multiPictSample.py Traceback (most recent call last): File ".\multiPictSample.py", line 37, in <module> p.start() # プロセスの開始 File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\process.py", line 112, in start self._popen = self._Popen(self) File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\context.py", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__ reduction.dump(process_obj, to_child) File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) _pickle.PicklingError: Can't pickle <class '__main__.c_ubyte_Array_3_Array_728'>: attribute lookup c_ubyte_Array_3_Array_728 on __main__ failed PS D:\Users\poly_Z\Documents\splatmusicprj> Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\spawn.py", line 99, in spawn_main new_handle = reduction.steal_handle(parent_pid, pipe_handle) File "C:\Users\poly_Z\AppData\Local\Programs\Python\Python37\lib\multiprocessing\reduction.py", line 82, in steal_handle _winapi.PROCESS_DUP_HANDLE, False, source_pid) OSError: [WinError 87] パラメーターが間違っています。
v = ndarrayToValue(input_img) # 画像を45度回転するプロセスを生成 p = mp.Process(target = filter, args = (v, )) p.start() # プロセスの開始

この辺りの動作がおかしいのだろうなというところまではわかるけれど,このサンプルを動かすためにはどうしたらよいのかわからないのでどなたかもし分かれば教えてください.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問