• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

이미지 마스킹편 질문

20.06.02 01:36 작성 조회수 190

0

이미지 마스킹(Masking) 강의에서 궁금한 부분들이 있습니다.

1.

mask=np.zeros(img.shape[:2], dtype="uint8") 라고 코드를 적으셨던데 dtype="uint8" 부분 설명이 부족해서 전혀 이해가 가지않습니다. dtype="uint8" 이 정확히 뭔가요? 자세한 설명 부탁드립니다.

2.

코드를 마무리할때 cv2.waitKey(0)을 적으시던데 괄호안에 0을 안넣은 cv2.waitKey() 라고 적어도 똑같은 기능을 하던데 0을 넣고안넣고의 차이가 뭔가요?

3.

코드마지막에 윈도우창을끄는 cv2.destroyAllWindows() 를 항상쓰시던데 코드에 ~Windows()가 들어간다는말은 윈도우에서만 제기능을 발휘하는 코드인것같은데 저는 윈도우와 관련없는 우분투운영체제를 쓰는데도 윈도우창을끄는  이 코드가 제 기능을 하는이유가 궁금합니다.  윈도우에서만  기능을 해야되는거 아닌가요?

4.

마지막으로  "opencv이용해서 손흥민을 찾아라" 편이 저의 인프런 첫 강의인데 강의에서 설명이 자세하지않아 이해가 안되는 부분들이 있는데 이 강의를 듣기전에 인프런에서 선행해서 들어야 되는강의가 혹시 있나요? 있다면 뭔가요?

답변 1

답변을 작성해보세요.

0

안녕하세요?

열심히 공부하시면서 재미있는 질문을 해 주셨네요.

1. np.zeros(img.shape[:2], dtype="uint8") 에서 dtype="uint8"의 의미

  : 결론부터 말씀드리면 uint8은 'Unsigned integer (0 to 255)'를 의미합니다. 그러니까 정수 중 부호가 없는 0부터 255의 값입니다.

   그런데 dtype=의 설정은 꼭 해주지 않아도 되는 선택사항입니다. 만약 써주지 않으면 float64값이 들어갑니다. 그런데도 dtype="uint8"하고 써준 것은 우리는 np.zeros에서 0만 쓰므로 일단 데이터를 꼭 필요한 형태만 사용하는 것이 좋은 습관이고 또 np.zeros라는 함수가 img.shape[:2] 그러니까 이미지의 높이와 넓이 모든 공간에 0을 채워주기 위한 것을 강조하는 의미입니다. 

2. cv2.waitKey() 의 괄호 안의 숫자는 아무키나 키를 누르기를 기다리는 시간입니다. 1이라 쓰면 1ms를 기다립니다.(1000ms가 1초입니다.) cv2.waitKey(0)는 무한대로 계속 기다리라는 의미입니다. 그러니까 사용자가 키를 누를때까지 계속 기다릴 때 사용하면 좋지요. cv2.waitKey()라고 써도 시간을 지정해 주지 않았으므로 그냥 기다리지만 코딩을 할때 의사를 명확히 한다는 의미에서 cv2.waitKey(0)을 사용했습니다.

3.  cv2.destroyAllWindows() 의 윈도우는 운영체제의 이름을 의미하는 것이 아니고 OpenCV가 띄운 창을 의미합니다. 그러므로 윈도우, 맥, 우분투 증 사용하시는 운영체제와 상관없이 프로그램에서 생성한 창을 종료할때 사용하는 자주쓰는 명령입니다.

4. 먼저 첫 강의로 제 강의를 수강해주셔서 감사합니다. 온라인에서 여러 분들을 대상으로 강의를 만들면 수강생분들의 수준과 기대가 다양해서 어디까지 설명을 드려야 할지 고민스러울 때가 많습니다. 강사님마다 성향이 있겠지만 저는 예전에 강의를 들은 경험으로 목적과 주제에 맞게 강의를 세분화하고 있습니다. 백과사전처럼 방대한 강의는 가격도 비싸고 양에도 질리지만 그 중 필요한 부분이 한정된 경우가 많아서 수강생이 필요한 주제에 맞는 강의를 골라서 들으실 수 있도록 하고 있습니다. 그러다 보니 인프런에만 무료강의 포함해서 20개 정도의 강의가 있습니다. 수강생 분의 수준과 기대가 어느 정도인지 위 질문 만으로는 정확히 모르겠는데 파이썬의 기본을 다시 다지고 시작하신다면 '파이썬 100분핵심강의'를 추천하고 numpy 등 데이터 가공을 배우고자 하시면 '파이썬 데이터 시각화 분석 실전프로젝트'를 추천합니다. 이 외 뒤에서 배울 머신러닝, 딥러닝 내용을 이해하기 위해서는 '파이썬 머신러닝 실전프로젝트'나 '파이썬 딥러닝 실전프로젝트'가 도움이 될겁니다. 만약 여러 과정 중 어떤 내용을 관련과목으로 들을지 고민스럽거나 모두 구매하기에 부담스러우시면 제가 운영하는 크리애플(www.creapple.com)에서 구독을 하시면 3개월 또는 1년 동안 20개가 넘는 모든 동영상 강의를 다 들으실 수도 있습니다.

 

아무쪼록 새로 시작하시는 공부가 도움이 되시길 바라면 궁금한 점이나 건의하실 사항있으면 언제나 연락주세요.

감사합니다.