내가 보려고 만든 블로그

Opencv data type 본문

OpenCV

Opencv data type

hjh1023 2023. 11. 6. 15:06
반응형

CV_8U : 8-bit unsigned integer: uchar ( 0..255 )
CV_8S : 8-bit signed integer: schar ( -128..127 )
CV_16U : 16-bit unsigned integer: ushort ( 0..65535 )
CV_16S : 16-bit signed integer: short ( -32768..32767 )
CV_32S : 32-bit signed integer: int ( -2147483648..2147483647 )
CV_32F : 32-bit floating-point number: float ( -FLT_MAX..FLT_MAX, INF, NAN )
CV_64F : 64-bit floating-point number: double ( -DBL_MAX..DBL_MAX, INF, NAN )

 

1채널이면 img.at<uchar>(y,x) or img.at<ushort>(y,x), 이런식으로 접근하면 됨

 

채널이 2채널 이상일때는 uchar이런식으로 쓰지않고 Vec2b, Vec3b이런식으로 쓴다.

 

https://docs.opencv.org/3.4/dc/d84/group__core__basic.html#gaf20d857c2077c986d3b303e3d58bbc54

 

OpenCV: Basic structures

template<typename T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 > Ptr cv::makePtr ( const A1 &  a1, const A2 &  a2, const A3 &  a3, const A4 &  a4, const A

docs.opencv.org

 

  type 채널수
Vec3b uchar 3
Vec3d double 3
Vec3f float 3
Vec3i int 3
Vec3s short 3
Vec3w ushort 3

위와 같이 Vec3b 면 uchar가 3채널 있다는 말임.

img.at<cv::Vec3b>(y,x)[0]

img.at<cv::Vec3b>(y,x)[1]

img.at<cv::Vec3b>(y,x)[2]

형식이 uchar일경우 (CV_8UC3) 이렇게 접근하면 된다.

참고해서 형식을 잘맞춰야 세그먼트 폴트 에러가 안뜸...

위 링크에 들어가서 보면 더 다양한 형식을 참고할수 있다.

반응형

'OpenCV' 카테고리의 다른 글

ubuntu opencv apt로 설치하기  (0) 2024.05.18
ubuntu 22.04 opencv 설치  (0) 2024.05.17
ubuntu환경에서 vtk 설치방법  (0) 2023.10.06