imread함수를 통해 jpg을 읽어와 해당 이미지의 channel이 뭔지 구분해서
3일때와 1일때를 나눠서 저장하려고 했다.
하지만 그레이스케일 이미지든 RGB 이미지든 전부 imread로 읽어온 채널이 3이라서
검색해보고 정리한 글이다.
imread는 기본적으로 첫번째 인자로 경로를 받고,
두번재 인자로 플래그를 받는다.
문제는 imread는 default값이 IMREAD_COLOR이다.
이 플래그는 무조건 3채널로 이미지를 변경한다.
always convert image to the 3 channel BGR color image.
따라서 채널값을 변경하지 않는 imread_unchanged 플래그를 사용해서
불러왔다.
아래는 플래그 표다.
https://docs.opencv.org/3.4/d8/d6a/group__imgcodecs__flags.html#ga61d9b0126a3e57d9277ac48327799c80
https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56