Mat blobFromImage(InputArray image, double scalefactor = 1.0, const Size& size = Size(), const Scalar& mean = Scalar(), bool swapRB = false, bool crop = false, int ddepth = CV_32F); |
|
• image |
입력 영상. 1 또는 3 또는 4채널 |
• scalefactor |
입력 영상 픽셀 값에 곱할 값 |
• size |
출력 영상의 크기 |
• mean |
입력 영상 각 채널에서 뺄 평균값. 만약 image가 BGR 채널 순서이고 swapRB가 true이면 (R 평균, G 평균, B 평균) 순서로 값을 지정합니다. |
• swapRB |
첫 번째 채널과 세 번째 채널을 서로 바꿀 것인지를 결정하는 플래그. 이 값이 true이면 컬러 입력 영상의 채널 순서를 BGR에서 RGB로 변경합니다. |
• crop |
입력 영상의 크기를 변경한 후, 크롭(crop)을 수행할 것인지를 결정하는 플래그 |
• ddepth |
출력 블롭의 깊이. CV_32F 또는 CV_8U를 지정합니다. |
• 반환값 |
영상으로부터 구한 블롭 객체. 4차원(NCHW) Mat 행렬입니다. |
blobFromImage() 함수는 입력 영상 image로부터 4차원 블롭 객체를 생성하여 반환합니다. 입력 영상으로부터 블롭 객체를 만들 때에는 사용할 네트워크 구성에 대해 제대로 이해하고 있어야 합니다. 딥러닝 네트워크마다 고유의 입력 블롭 크기와 행렬 원소 값 구성 방법을 가지고 있으며, 이러한 구성에 맞게 블롭 크기 또는 원소 값을 제대로 설정해야 합니다. 예를 들어 사용할 네트워크가 학습 과정에서 224×224 크기의 입력 영상을 사용하였으므로 blobFromImage() 함수의 size 인자에 Size(224, 224)를 지정해야 합니다. 만약 입력 영상 픽셀 값 범위를 0에서 1 사이의 실수로 정규화하여 훈련된 딥러닝 모델을 사용한다면 scalefactor 인자에 1/255.f를 지정해야 합니다. mean 인자에는 입력 영상의 모든 픽셀에서 추가로 뺄 값을 지정하며, 없으면 Scalar()를 지정합니다. 만약 딥러닝 프레임워크에서 컬러 영상 채널 순서를 RGB로 사용하였다면 swapRB 인자를 true로 지정해야 합니다.