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

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

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

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

Q&A

1回答

4411閲覧

OpenCVのカメラの比率の変更の仕方

max12345

総合スコア20

OpenCV

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

0グッド

0クリップ

投稿2021/01/25 08:39

OpenCVのカメラを起動するとデフォルトでは640×480ですが、1:1の比率にすることはできますか?

python

1 2import nnabla as nn 3import numpy as np 4import cv2 5import os 6import sys 7import nnc 8 9# 設定値 10DEVICE_NUM = 0 # 利用するカメラに割り当てられているデバイス番号を指定 11NNPPATH = r'results.nnp' # 学習済みモデルのパス 12IMG_SAVE_DIR = 'camera_data' # カメラから取得した画像を保存するディレクトリのパス 13IMG_PREFIX = 'camera_capture' # 保存画像名のプレフィックス 14EXT = 'png' # 保存する画像の形式 15 16 17def get_camera_img(dir_path, basename, delay=1, window_name='frame'): 18 global imgcnt 19 cap = cv2.VideoCapture(DEVICE_NUM, cv2.CAP_DSHOW) 20 21 if not cap.isOpened(): 22 print("[Error] カメラデバイスの読み込みに失敗しました。") 23 return 24 25 os.makedirs(dir_path, exist_ok=True) 26 base_path = os.path.join(dir_path, basename) 27 28 while True: 29 ret, frame = cap.read() 30 cv2.imshow(window_name, frame) 31 key = cv2.waitKey(delay) & 0xFF 32 if key == ord('p'): 33 img_path = '{}_{}.{}'.format(base_path, imgcnt, EXT) 34 cv2.imwrite(img_path, frame) 35 imgcnt += 1 36 return img_path 37 elif key == ord('q'): 38 break 39 40 cv2.destroyWindow(window_name) 41 sys.exit() 42 43 44# 利用するプロジェクトによって処理を変える箇所() 45def exec_nnc(img_path): 46 class_names = [chr(ord('A') + i) for i in range(26)] 47 img_size = 250 48 x=nn.Variable((1,3,img_size,img_size)) 49 img = cv2.imread(img_path) 50 img = cv2.resize(img, (img_size, img_size)).transpose(2,0,1) 51 x = nn.Variable((1, ) + img.shape) 52 x.d = img.reshape(x.shape) 53 y = nnc.network(x, test=True) 54 y.forward() 55 56 print("******************") 57 print("入力画像: ", img_path) 58 print("推論結果: ", y.d) 59 print("一番確率が高いクラス: ", np.argmax(y.d), "番目") # 0 - 25 60 print("一番確率が高いアルファベット: ", class_names[np.argmax(y.d)]) 61 62 63 64if os.path.isfile(NNPPATH): 65 nn.load_parameters(NNPPATH) 66 imgcnt = 1 67 68 while True: 69 img_path = get_camera_img(IMG_SAVE_DIR, IMG_PREFIX) 70 71 exec_nnc(img_path)

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

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

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

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

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

tiitoi

2021/01/25 10:54 編集

カメラの撮影可能なアスペクト比に1:1のものがなければ無理でしょう 普通のカメラは16:9、4:3とか横長のものが多いと思います
guest

回答1

0

取得映像サイズは以下のように設定できます。

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

しかし、そもそもカメラがサポートしていないサイズは指定しても無視されます。
あなたが使っているカメラの仕様を確認してください。

投稿2021/01/25 12:09

technocore

総合スコア7355

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問