Python OpenCV Mat Type 얻기
예상되는 상황
OpenCV를 사용하여 Laplacian 필터 등을 적용하는 경우
cv2.(input, CV_8U)와 같이 Mat Type(CV_8U 등의 값)을 지정할 필요가 있다.
C++나 C#라면 이 MatType은 input.depth() 로 얻을 수 있다.
그러나 Python의 경우 input의 이미지는 Numpy로 읽혀지기 때문에 Mat Type을 얻을 수 없습니다. 따라서 매번 입력 이미지의 유형에 따라 프로그램을 다시 작성할 필요가 있습니다.
타개책
Numpy 로 input 화상의 채널수와 데이터형을 조사한다.
얻어진 정보를 바탕으로 if 문으로 Mat Type을 판별
구체적으로는
채널 수를 조사하는 방법
if np.ndim(input) == 3:
_, _, ch = input.shape
elif np.ndim(input) ==2: #그레이스케일의 경우
ch = 1
데이터 유형을 확인하는 방법
input.dtype ##uint8 등과 같은 값을 얻을 수 있습니다.
이러한 정보를 바탕으로 Mat Type을 결정합니다.
인용구 : ht tp // // g g g g. bgs포 t. 이 m / 2012 / 11 / st-o-ma t-ty-pe-in-o-cv. HTML
이 표를 보면 채널수와 데이터형에 따라 Mat Type의 숫자가 정해지는 것을 확인할 수 있다.
다행히 cv2.Laplacian 등으로 지정하는 MatType은 숫자이다. (CV_8U의 내용은 숫자)
이렇게 쓰면 괜찮을 것이다.
문제점
어느 쪽이든 귀찮아.
더 예쁜 글쓰기
혹은, 간단하게 하는 방법을 알고 있는 분 있으면 가르쳐 주세요.
Reference
이 문제에 관하여(Python OpenCV Mat Type 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/llight/items/5d2412940fd47e5a0efc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Numpy 로 input 화상의 채널수와 데이터형을 조사한다.
얻어진 정보를 바탕으로 if 문으로 Mat Type을 판별
구체적으로는
채널 수를 조사하는 방법
if np.ndim(input) == 3:
_, _, ch = input.shape
elif np.ndim(input) ==2: #그레이스케일의 경우
ch = 1
데이터 유형을 확인하는 방법
input.dtype ##uint8 등과 같은 값을 얻을 수 있습니다.
이러한 정보를 바탕으로 Mat Type을 결정합니다.
인용구 : ht tp // // g g g g. bgs포 t. 이 m / 2012 / 11 / st-o-ma t-ty-pe-in-o-cv. HTML
이 표를 보면 채널수와 데이터형에 따라 Mat Type의 숫자가 정해지는 것을 확인할 수 있다.
다행히 cv2.Laplacian 등으로 지정하는 MatType은 숫자이다. (CV_8U의 내용은 숫자)
이렇게 쓰면 괜찮을 것이다.
문제점
어느 쪽이든 귀찮아.
더 예쁜 글쓰기
혹은, 간단하게 하는 방법을 알고 있는 분 있으면 가르쳐 주세요.
Reference
이 문제에 관하여(Python OpenCV Mat Type 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/llight/items/5d2412940fd47e5a0efc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
어느 쪽이든 귀찮아.
더 예쁜 글쓰기
혹은, 간단하게 하는 방법을 알고 있는 분 있으면 가르쳐 주세요.
Reference
이 문제에 관하여(Python OpenCV Mat Type 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/llight/items/5d2412940fd47e5a0efc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)