Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Updated:

質問

...

カメラ本体設定「画像回転」および「上下反転」により、YC画像の向きはどうなりますか?

...

回答

...

本体設定の「画像回転」および「上下反転」はライブ画に反映される設定です。

YC画像を回転させたい場合は、アプリ内で実装する必要があります。

Info

ambaCV5Xカメラではアプリ内の実装は不要です。

[設定] - [基本] - [基本] - [画像回転]の設定を「180°(上下反転)」とすると、ライブ画の表示は180度回転します。

...

PTZカメラの場合、[PTZ] - [カメラ動作] - [カメラ動作] - [上下反転]の設定を「ON」とすると、ライブ画の表示は上下反転します。

...

[画像回転]を「0°(OFF)」に設定した場合
[上下反転]を「OFF」に設定した場合

...

[画像回転]を「180°(上下反転)」に設定した場合
[画像回転]を「ON」に設定した場合

...

ライブ画と同じ向きの画像を扱いたい場合は、カメラの設定に応じてアプリ内で画像回転させる必要があります。

ADAM_CamPref_Get()およびADAM_PtzDigitalFlipState_Get()で回転設定を取得できます。

処理サンプル(C版)

Code Block
retval #ifdef ADAM_TARGET_PF_ipro_ambaCV2X_linux

err = ADAM_CV_SetCpuData(&ycInBlob, pData->m_pData);
if(err != ADAM_CamPref_GetERR_OK){
  ADAM_DEBUG_PRINT(ADAM_CAMPREF_TYPE_IMG_ROTATION, &m_adamCamPrefDataLV_ERR, "ADAM_CV_SetCpuData err! err:%d\n",err);
  return;
}

err = ADAM_CamInfo_Get(&m_adamCamInfo);
if(retvalerr != ADAM_ERR_OK){
  LPRADAM_DEBUG_PRINT( LPRADAM_LOG_LV_ERRDBG, "[LPR] ERROR --- ADAM_CamPrefCamInfo_Get() \nerr");
  return LPRAPL_NG;
}

if ( m_adamCamPrefDataadamCamInfo.m_arg.m_rotationptz == 1) {
  err = LPR_IMG_ROTATE_180DEGADAM_PtzDigitalFlipState_Get(&ptzDegitalFlip);
  if(err != ADAM_ERR_OK){
  LPR  ADAM_DEBUG_PRINT( LPR_LOGADAM_LV_ERR, "ADAM_PtzDigitalFlipState_Get err");
    return;
  }
  
  if( ptzDegitalFlip == 1){
    ADAM_DEBUG_PRINT(ADAM_LV_DBG, "[LPR]ptzDegitalFlip ImageLotate = (%d)\n",m_adamCamPrefData.m_arg.m_rotationptzDegitalFlip);
    iReterr = ADAM_CV_SetCpuData ( ImageRotate(&ycInBlob,&ycInBlobTmp ,ADAM_ROTATE_180DEG);
ycimg );   if(err != ADAM_CV_ImageRotate(ERR_OK){
   &ycInBlobTmp,   &lprapl_img_buffer.ycInBlob[count],
  ADAM_ROTATE_180DEG
  );
}else if (m_adamCamPrefData.m_arg.m_rotation == LPR_IMG_ROTATE_0DEG){
  iRet = ADAM_CV_SetCpuData ( &lprapl_img_buffer.ycInBlob[count] , ycimg );
}else{
  LPR_DEBUG_PRINT( LPR_LOG_LV_ERR, "[LPR] ERROR --- Bad Rotate ADAM_DEBUG_PRINT(ADAM_LV_ERR, "ADAM_CV_ImageRotate err \n");
      return;
    }
  }
}
else{
  err = ADAM_CamPref_Get(ADAM_CAMPREF_TYPE_IMG_ROTATION, &m_adamCamPrefData);
  if(err != ADAM_ERR_OK){
    ADAM_DEBUG_PRINT(ADAM_LV_ERR, "ERROR --- ADAM_CamPref_Get() \n");
    return;
  }

  if( m_adamCamPrefData.m_arg.m_rotation == 180 ){
    ADAM_DEBUG_PRINT(ADAM_LV_DBG, "ImageLotate = (%d)\n", m_adamCamPrefData.m_arg.m_rotation);
    err = ADAM_CV_ImageRotate(&ycInBlob,&ycInBlobTmp,ADAM_ROTATE_180DEG);
   LPR_abort();
}
Note
SシリーズBOXカメラの場合はこちらをご参照ください。
 if(err != ADAM_ERR_OK){
      ADAM_DEBUG_PRINT(ADAM_LV_ERR, "ADAM_CV_ImageRotate err \n");
      return;
    }
  }
}
#endif

関連FAQ

dev-partner.i-pro.com/space/TPFAQ/724078720

Python版API

  • adam_cam_pref_get()

  • adam_cv_image_rotate()

  • adam_ptz_digital_flip_state_get()