[데브코스 자율주행 TIL] 주말 (10/29)

happy_quokka·2023년 10월 30일
0
post-thumbnail

2023.10.29 주말 TIL 🫠

차선 인식 프로젝트를 시작했다!! 영상의 이진화를 구현해보았다. c++이 익숙하지 않아서 일단 구현하는 것을 해보고 나중에 정리를 하거나 해야겠다. python이 익숙한 나는 자료형을 지정해주는 것이 익숙하지 않다... 자료형을 잘못써서 에러가 나는 경우가 많았다...ㅎㅎ 공부할 때 함수의 매개변수, 반환값의 자료형이 무엇인지 자세히 봐야할 것 같다!!


🛣 차선 인식 프로젝트

영상 이진화

구현 알고리즘 4가지

  • gray scale 영상으로 변환
    • histogram equalize
    • histogram stretch
  • HLS 영상으로 변환 후 L 사용
    • histogram equalize
    • histogram stretch
  • 추가적으로 모폴로지 연산 수행 (진행중이다)

결과

  • gray와 hls의 히스토그램 차이는 거의 없다.
  • eqaulize과 stretch 수행시간이 각각 0.96ms, 2.79ms로 equlize가 더 빠르다.
  • stretch의 히스토그램이 더욱 깔끔하지만 이진화 결과 equalize와 큰 차이가 없다.
  • 따라서 equalize 방법으로 이진화 수행 선택
  • 바닥에 노이즈가 있기 때문에 모폴로지 연산을 추가적으로 수행중이다. 모폴로지 연산을 통해 노이즈가 제거되지만 차선이 끊기는 경우가 생겨 확인이 필요하다.

영상 Trackbar

  • trackbar를 사용하여 threshold를 변경해가며 이진화 결과를 확인하였다.

😵 어려웠던 점

동영상에서의 trackbar

문제 : trackbar 무한 생성 / trackbar 값 가져오기

  • 처음에 별 생각없이 while문 안에 imshow하기 바로 직전에 createTrackbar를 수행했더니 아래와 같이 trackbar가 무한히 생성되었다..ㅋㅋ음에 별 생각없이 while문 안에 imshow하기 바로 직전에 createTrackbar를 수행했더니 아래와 같이 trackbar가 무한히 생성되었다..ㅋㅋ
  • trackbar를 생성할 때 이벤트로 처리하여 그 안에서 imshow를 수행했는데 이렇게 하지 않고 값을 어떻게 가져오지...라는 문제가 생겼다.

해결

while 문 밖에 createTrackbar를 선언해놓고 cv::getTrackbarPos() 함수를 사용하여 trackbar에서 선택한 값을 가져오면 된다기


📝 배운 내용

  • morphologyEx()에서 open 연산
    • iteration=2 인 경우 침식-침식-팽창-팽창 순서로 수행된다

0개의 댓글