ROS 강좌 119 카메라 이미지의 색상 보정

환경



이 기사는 다음 환경에서 작동합니다.


품목



CPU
Core i5-8250U

우분투
18.04

ROS
Melodic

OpenCV
3.2.0


설치에 대한 자세한 내용은 ROS 강좌02 설치을 참조하십시오.
또한이 기사의 프로그램은 github에 업로드되었습니다. ROS 강좌 11 git 저장소을 참조하십시오.

개요



과거의 기사에서 색조로 물체를 검출하는 예를 만들었지만, 이것은 카메라로 올바른 색을 얻을 수 있다고 가정합니다. 그러나 카메라로 얻을 수 있는 색은 카메라의 성능이나 조명의 조건에서도 바뀌어 버립니다. 그래서 카메라(와 환경)의 색 교정을 간이적으로 하는 방법을 여기서 설명합니다.
원리로서는 「기준이 되는 색」의 물건을 카메라로 찍어 어떤 색으로서 찍히는지를 조사해, 각 색(빨강, 초록, 파랑)의 게인치를 구합니다.
이번은 「기준이 되는 색」으로서 칼라 체커라고 하는 것을 사용합니다. 제대로 된 것 ( X-rite ColorChecker Classic )이 좋지만 거기 높기 때문에 Aliexpress에서 비슷한 것을 주문했습니다. 컬러 체커에는 색과 그 색이 RGB로 어떻게 찍혀야 하는가 하는 데이터가 붙어 있습니다.

소스 코드



r_re c chi fy_와 l. py
  • 카메라 이미지가 /image_raw로 표시된다고 가정합니다.
  • 시작하면 opencv2에서 생성 된 화면이 나타납니다. 컬러 검사기를 카메라에 찍으면 클릭합니다. 그 후 찍힌 컬러 체커의 4 구석을 클릭하면 24점의 측정점을 자동으로 계산합니다. 다시 계산하면 결과를 HTML로 내보냅니다.

  • 실행



    도구 실행
    rosrun cam_lecture color_rectify_tool.py
    



    실행 후에는 다음과 같은 결과가 되었습니다. Gian이 크다=본래의 색보다 강하게 찍힌다고 한다.
    빨간색이 약하고 파란색이 강하게 비치고 있습니다. 전형적인 형광등의 경향입니다.



    코멘트


  • 이번에는 24개의 모든 게인을 측정하여 중앙값의 12개의 평균을 채용했습니다. 만약 용도가 있다면 그것에 대응하는 색을 중심으로 보정 정보를 만드는 것이 좋을 것입니다.
  • 보정치가 나왔으므로, 원 화상의 색을 gain으로 나누는 or색 판정의 판정지에 gain을 곱하는 등해서 사용합니다.

  • 참고


  • 템플릿 라이브러리
  • python16진수 표시
  • 브라우저에서 표시
  • color checker

  • 목차 페이지 링크



    ROS 강좌의 목차에의 링크

    좋은 웹페이지 즐겨찾기