2011-04-12 2 views
2

내 이미지의 일부 픽셀의 색조를 변경해야하지만이를 설정하는 방법을 모르겠습니다! opencv로 일부 픽셀의 색조 값을 설정하는 방법

나는 CV_BGR2HSV와 HSV에서 이미지를 변환하고 지금은

가 어떻게 각 픽셀의 색상에 액세스 할 수 있습니다 ... 행과 COLS로의 사이클링거야?

내가이 코드를 사용하고 RGB 설정을위한

...

CvScalar s; 
s=cvGet2D(imgRGB,i,j); // get the (i,j) pixel value 
printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]); 
s.val[0]=240; 
s.val[1]=100; 
s.val[2]=100; 
cvSet2D(imgRGB,i,j,s); // set the (i,j) pixel value 

답변

4

이미 HSV에 이미지를 변환, 그래서 이미지의 3 층 지금 색조, 채도 및 값에 해당합니다

  • s.val[0]은 색조입니다.
  • s.val[1]은 채도입니다.
  • s.val[2]입니다.

픽셀 값을 가져오고 설정하기 위해 RGB 이미지와 동일한 방법을 사용하십시오.

+0

예 감사합니다. 문제는 CV_BGR2HSV가 실제 hsv 형식으로 변환되지 않으므로 179 °만을 사용하기 때문입니다. 그래서 색조가 바뀌었을 때 일부 이상한 결과가 만료되었고 뭔가를했다고 생각했습니다. 잘못된 – Janky

0

예, openCV은 180 ° 즉 HSV의 (0 ° -179 °) 실린더를 사용합니다. MS 페인트는 일반적으로 (0 ° -240 °) 이상적으로 (0 ° -360 °). 따라서 openCV는 색조의 결과를 (0 ° -179 °)에서 제공합니다.