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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

2830閲覧

python×opencvでwebカメラからキャプチャされた画像を640×480のまま低品質にしたい

west1220

総合スコア3

OpenCV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2021/10/06 14:40

前提・実現したいこと

python×opencvでwebカメラからキャプチャした画像(何もしなければサイズは
640×480)を縦横resizeすることなく画像を粗く、低品質にしたいです。
(例:640×480→320×240にすれば解像度も落ちますが、サイズを変えずに
実現したいです。)

発生している問題・エラーメッセージ

カメラ読み込みを高速に、圧縮化などのサイトでみかけた cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('H', '2', '6', '4')) をかませましたが、変化がありませんでした。

該当のソースコード

python

1import cv2 2import threading 3 4cap = cv2.VideoCapture(0) 5cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('H', '2', '6', '4')) 6 7if __name__ == '__main__': 8 while(cap.isOpened()): 9 ret, frame = cap.read() 10 frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 11 12 cv2.imshow('detect', frame) 13 14 key_input = cv2.waitKey(1) 15 if key_input > 0: 16 break 17 18cap.release() 19cv2.destroyAllWindows()

試したこと

cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('H', '2', '6', '4'))を
試しましたが、変化なしでした。

補足情報(FW/ツールのバージョンなど)

言語:python3.7
opencv4.5.1
raspberrypi4

ここにより詳細な情報を記載してください。

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

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

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

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

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

maisumakun

2021/10/06 23:47

> 画像を粗く、低品質にしたいです。 目的は何でしょうか?「容量削減」と「プライバシー保護」ではやるべきことが違うことが考えられます。
west1220

2021/10/07 06:02

maisumakun様 目的としては、raspberrypiでこのプログラムを実行したいということ、またこのプログラムに 顔認識の機能などを加えようとしていることから、処理が重くなり、描画がカクカクなってしまう ことを解決したいというのが目的です。 (質問では顔認識の部分は書いておりませんが、実際に試してみるととてもカクカクになり、 顔を動かした1秒後に画像上の顔が動く、といった現象になりました。) pythonなのでマルチスレッド等も試していくつもりではありますが、一番は画像の画質を 落とせばカクカクもなくなるだろうと考えた次第です。 しかし、理由があって画像サイズは640×480から変えることができないという制約があるため、 今回の質問に至った次第です。 ご回答ありがとうございました。
guest

回答3

0

ベストアンサー

加工過程でもresizeしてはいけない、という制限があるのでなければ、
320x240にresizeして、それを640x480に再度resizeすればよいという話に思えるのですが違うのですか?

あるいは近傍4画素を平均化(いわゆるモザイク)みたいなことをしても同じことになると思いますが。

投稿2021/10/06 23:12

thkana

総合スコア7639

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

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

west1220

2021/10/07 06:07

thkana様 ありがとうございます!私が目的としていたことができました! ありがとうございました。
guest

0

ご所望の「低品質」とは何なのか? 次第です.

「低品質」を,別のより具体的な言葉で言い換えてみてください.
で,その言葉を検索ワードに用いるなどしてみてはどうでしょうか.

例えば,(他の方の回答に出ている言葉ですが)「モザイク」という語が当てはまりそうであれば
「画像処理 モザイク アルゴリズム」とかで検索するとよいでしょう.

  • 「モザイク」とか「ぼかし」

ボックスフィルタやガウシアンフィルタのような話が見つかるかと.
さらには「エッジ保存平滑化」だとか「周波数成分がどうの」いう方面の話にも行き着くかも.
(「圧縮」による劣化に着目しているなら,後者側の話が関連してくるかな)

  • 「拡大/縮小」

↑と似たような話だが,結果画素値を元画像から決める方法の違い
(二アレスとネイバーだとかバイリニアだとか)に関する話が多く見つかるかな.

  • 「減色」

これを指して「低品質」と言うかどうかわからないけど,アルゴリズムの話は見つかるんじゃないかな.

  • その他,「雑音を乗せる」だとか,「ドット絵風」だとか…?

投稿2021/10/07 01:07

fana

総合スコア11658

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

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

west1220

2021/10/07 06:05

fana様 ご回答ありがとうございます。 目的としては、raspberrypiでこのプログラムを実行したいということ、またこのプログラムに 顔認識の機能などを加えようとしていることから、処理が重くなり、描画がカクカクなってしまう ことを解決したいというのが目的です。 (質問では顔認識の部分は書いておりませんが、実際に試してみるととてもカクカクになり、 顔を動かした1秒後に画像上の顔が動く、といった現象になりました。) pythonなのでマルチスレッド等も試していくつもりではありますが、一番は画像の画質を 落とせばカクカクもなくなるだろうと考えた次第です。 しかし、理由があって画像サイズは640×480から変えることができないという制約があるため、 今回の質問に至った次第です。 上記でいうと、拡大/縮小、減色のイメージでしょうか…勉強不足ですみません。 ご回答ありがとうございました。
guest

0

低品質にしたい理由が、保存する場合のファイルサイズを減らすことであれば、jpeg形式で保存してqualityパラメータを小さくすればサイズを減らすことができます。

低品質にしたい理由が違っているなら、質問を編集して理由を追加してください。

投稿2021/10/06 23:32

ppaul

総合スコア24666

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

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

west1220

2021/10/07 06:06

ppaul様 ご回答ありがとうございます。 当方、画像の保存は想定しておらず、ずっとキャプチャ画像を流し続ける…とったイメージになります。 目的としては、raspberrypiでこのプログラムを実行したいということ、またこのプログラムに 顔認識の機能などを加えようとしていることから、処理が重くなり、描画がカクカクなってしまう ことを解決したいというのが目的です。 (質問では顔認識の部分は書いておりませんが、実際に試してみるととてもカクカクになり、 顔を動かした1秒後に画像上の顔が動く、といった現象になりました。) pythonなのでマルチスレッド等も試していくつもりではありますが、一番は画像の画質を 落とせばカクカクもなくなるだろうと考えた次第です。 しかし、理由があって画像サイズは640×480から変えることができないという制約があるため、 今回の質問に至った次第です。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問