最終更新:2018-09-20 (木) 17:09:41 (2006d)
VideoCapture_DShow::setProperty
Top / VideoCapture_DShow::setProperty
https://github.com/opencv/opencv/blob/master/modules/videoio/src/cap_dshow.cpp#L3238
メモ
- widthとheightが両方設定されてないとfourcc/fpsも更新されないようになっている
- 設定した後はメンバ変数のfourccは-1(自動)にリセットされてしまう。
- width->height->fourcc->fpsの順でセットするとfpsをセットする際にfourccが-1にリセットされてしまう。
- よって、FPSとFourCCを指定したい場合は
- set(fourcc) - width/heightが未設定なのでm_fourccに値が保存されるだけ
- set(fps) - width/heightが未設定なのでg_VI.setIdealFramerate?が実行されるだけ
- set(width)
- set(height) - width/heightが設定された時点でfpsとfourcc指定でデバイスが設定される
- の順に設定する必要がある。
if (m_width > 0 && m_height > 0) { if (m_width != g_VI.getWidth(m_index) || m_height != g_VI.getHeight(m_index) )//|| fourcc != VI.getFourcc(index) ) { int fps = static_cast<int>(g_VI.getFPS(m_index)); g_VI.stopDevice(m_index); g_VI.setIdealFramerate(m_index, fps); g_VI.setupDeviceFourcc(m_index, m_width, m_height, m_fourcc); } bool success = g_VI.isDeviceSetup(m_index); if (success) { m_widthSet = m_width; m_heightSet = m_height; m_width = m_height = m_fourcc = -1; }
値
- CV_CAP_PROP_FRAME_WIDTH
- CV_CAP_PROP_FRAME_HEIGHT
- CV_CAP_PROP_FOURCC
- CV_CAP_PROP_FPS
- CV_CAP_PROP_AUTOFOCUS?
- CV_CAP_PROP_SETTINGS
- CV_CAP_PROP_BRIGHTNESS?
- CV_CAP_PROP_CONTRAST?
- CV_CAP_PROP_HUE?
- CV_CAP_PROP_SATURATION?
- CV_CAP_PROP_SHARPNESS?
- CV_CAP_PROP_GAMMA?
- CV_CAP_PROP_MONOCHROME?
- CV_CAP_PROP_WHITE_BALANCE_BLUE_U
- CV_CAP_PROP_BACKLIGHT?
- CV_CAP_PROP_GAIN?
- CV_CAP_PROP_PAN?
- CV_CAP_PROP_TILT?
- CV_CAP_PROP_ROLL?
- CV_CAP_PROP_ZOOM?
- CV_CAP_PROP_EXPOSURE?
- CV_CAP_PROP_IRIS?
- CV_CAP_PROP_FOCUS?