영상인식과 색상모델(Gray,RGB,HSV,YCbCr)

영상처리 2013.05.17 16:27

어떤 색상 모델을 선택하는 것이 좋을까?


어떤 색상 모델을 사용해야 영상인식 알고리즘의 성능을 극대화할 수 있을까?


영상인식 알고리즘을 개발하는 사람이라면 한 번쯤은 고민해 봤을 문제입니다.


이 글에서는 색상모델을 선택하는데 도움이 될 수 있도록 색상모델에 대한 전반적인 내용을 영상처리 관점에서 정리해 보겠습니다.



1. 기본적인 색상 모델 알아보기


색상모델하면 Gray 모델, RGB 모델, HSV 모델, YCbCr 모델 등이 떠오를 것이다.




Gray 모델은 색(color) 정보를 사용하지 않고 밝기 정보만으로 영상을 표현하는 것이다. 검정색 0부터 흰색 255까지 총 256단계의 밝기값(intensity)으로 영상 픽셀값을 표현한다.


RGB 모델은 가장 기보적인 색상모델로서 색(color)을 Red, Green, Blue의 3가지 성분의 조합으로 생각하는 것이다. RGB 모델에서 검은색은 R=G=B=0, 흰색은 R=G=B=255, 빨강색은 R=255, G=B=0, 노란색은 R=G=255, B=0로 표현된다. R=G=B인 경우는 무채색인 Gray 색상이 된다. R, G, B 각각은 0 ~ 255 사이의 값을 가질 수 있기 때문에 RGB 색상 모델을 사용하면 총 256*256*256 = 16,777,216가지의 색을 표현할 수 있다.


HSV 모델은 Hue(색조), Saturation(채도), Value(명도)의 3가지 성분으로 색을 표현한다. Hue는 색조(예: 붉은색 계열인지 푸른색 계열인지, ...)를, Saturation은 그 색이 얼마나 선명한(순수한) 색인지를, Value는 밝기(intensity)를 나타낸다. HSV 모델은 우리가 색을 가장 직관적으로 표현할 수 있는 모델이며 또한 머리속에서 상상하는 색을 가장 쉽게 만들어낼 수 있는 모델이다. 영상처리/영상인식에서 HSV 모델을 사용할 때, H, S, V 각각은 0 ~ 255 사이의 값으로 표현된다. H 값은 색의 종류를 나타내기 때문에 크기는 의미가 없으며 단순한 인덱스(index)를 나타낸다. S 값은 0이면 무채색(gray 색), 255면 가장 선명한(순수한) 색임을 나타낸다. V 값은 작을수록 어둡고 클수록 밝은 색임을 나타낸다. HSV 색상 모델은 그림과 같이 원뿔(conic) 형태, 원기둥(cylindric) 형태가 있다. 둘의 차이는 색의 차이(difference)를 정량적으로 수치화하는 파트에서 설명하겠다.


YCbCr 모델은 RGB 색에서 밝기성분(Y)과 색차정보(Cb, Cr)를 분리하여 표현하는 색상모델이다. 위 5번째 그림은 위키페디아에 있는 그림으로  Y=128일 때의 CbCr 색상평면이다. 디지털 영상에서 Y, Cb, Cr은 각각 0 ~ 255 사이의 값을 가지며 Y가 커지면 위 그림이 전체적으로 밝아지고 Y가 작아지면 전체적으로 어두워진다. YCbCr 모델은 mpeg에서 사용되는 색상모델로서 인간의 눈이 밝기차에는 민감하지만 색차에는 상대적으로 둔감하다는 점을 이용해서 Y에는 많은 비트수(해상도)를 할당하고 Cb, Cr에는 낮은 비트수를 할당하는 방식으로 비디오를 압축한다. 따라서 비디오 데이터를 처리할 경우에 YCbCr 모델을 사용하면 별도의 색상변환을 하지 않아도 되는 장점을 갖는다. YCbCr 모델은 YUV 모델로도 불린다.



2. 두 색이 얼마나 다른(or 비슷한) 색인가?


영상인식에서 색상 정보를 이용하는 이유는 자신이 알고 있는 색과 비슷한 색을 찾기 위함이기 때문에 임의의 두 색 사이의 차이를 수치적으로 표현할 수 있어야 한다. 그러면 각 색상모델별로 두 색의 차이를 어떻게 정량적으로 표현할 수 있는지 살펴보자.


Gray 모델의 경우 두 색의 gray 값을 각각 g1, g2라 하면 색상차는 d = |g1 - g2|이다.


RGB 모델은 두 색 (r1,g1,b1), (r2,g2, b2) 사이의 차이를 유클리디언(Euclidean) 거리를 이용해서 d = sqrt{(r1-r2)^2 + (g1-g2)^2 + (b1-b2)^2}와 같이 계산할 수 있다.


HSV 모델을 사용할 경우에는 여러 가지 방식으로 색상 차이를 계산할 수 있다. 두 색을 (h1,s1,v1), (h2,s2,v2)라 하자. Hue 채널만을 사용할 경우에는 d = |h1 - h2|, 모든 채널을 사용하되 Euclidean 거리를 이용하면 d = sqrt{(h1-h2)^2 + (s1-s2)^2 + (v1-v2)^2}가 된다. 만일 위 3번째 그림과 같은 HSV conic 모델을 사용한다면, 먼저 다음 수식을 이용하여 (h, s, v)에 대응하는 공간좌표를 구한 후에 변환된 공간좌표들 사이의 Euclidean 거리를 이용한다 (원뿔 꼭지점을 원점, 세로축을 z축이라 가정).


HSV cylindric 모델을 사용할 경우에도 마찬가지로 (h,s,v)에 대응되는 공간좌표를 다음과 같이 구한 후 Euclidean 거리를 이용한다.

참고로, HSV conic 모델을 사용한다는 의미는 V가 작은, 즉 검은색에 가까운 경우에는 H, S 값에 관계없이 모두 유사한 색으로 간주하겠다는 의미가 된다. 하지만 HSV cylindric 모델을 사용하면 V값에 관계없이 H, S의 차이가 크면 색차값도 커지게 된다. 어떤 방식을 선택할지는 응용에 따라 다르겠지만 HSV conic 모델이 인간이 느끼는 색의 차이와 가장 유사하지 않나 싶다.


마지막으로 YCbCr 모델을 사용할 경우에는 (Y, Cb, Cr) 사이의 Euclidean 거리를 이용하거나, 혹은 Y 성분은 무시하고 (Cb, Cr) 사이의 Euclidean 거리만을 이용할 수도 있다.


요약하면 색상 모델에 따라 다양한 방식의 색상차 계산 방식이 존재할 수 있으며 응용에 따라 적합한 모델 및 색상 차 계산 방식을 선택해야 한다는 것이다. 참고로, 여기 적은 방식들은 가장 기본적인 방법들이며 필요하다면 얼마든지 변형이 가능할 것이다. 예를 들어, 가중치를 조절하는 방식도 생각할 수 있을 것이다. 어떻게 색상차를 계산하는 것이 가장 효율적인지, 즉 동일 물체에 대한 색상변화는 최소화하면서 다른 물체(배경)와의 색상차는 최대화할 수 있는 방법이 무엇인지도 훌륭한 연구주제가 될 것으로 생각한다.



3. 순수한 색차만을 이용한 방법


컴퓨터 비전 응용에 따라서는, 밝기값은 무시하고 순수한 색상 정보만을 이용하여 영상인식 작업을 수행하는 경우가 많다.


영상인식에 있어서 가장 큰 문제점 중의 하나는 동일한 사물이라 할지라도, 영상 촬영 환경 및 조건에 따라서 이것이 실제 이미지로 나타날 때에는 매우 다양한 형상(색상)이 나올 수 있다는 점이다. 예를 들어, 맑은 날, 흐린날, 비오는 날, 그늘에 가렸을 때, 그늘이 없을 때, 조명, 역광, 한낮, 해질무렵에 따라 영상이 모두 달라지고, 동일한 카메라라 할지라도 화이트 밸런스로 인해 색이 변할 수도 있다. 이렇게 다양한 변화요인들 속에서 영상에서의 동일한 색상을 인지한다는 것은 지극히 어려운 어쩌면 불가능한 일일지도 모른다.


이렇게 복잡한 색상 변화요인에 대처하는 방법은 크게 2가지로 나뉠 수 있다. 하나는, 색은 믿을 수 없으니 아예 색을 사용하지 않고 밝기정보(gray값)만을 사용하는 방법이다. 그런데 이와는 완전이 반대로  밝기 정보는 무시하고 순수한 색상 정보만을 이용하는 방법이 있다. 그 근거는 그늘에 가려졌을 때나 밖에 나왔을 때, 밝은 곳이나 어두운 곳, 맑은 날이나 흐린 날 등 이러한 환경 변화에 따라 변하는 것은 영상의 밝기값이지 색 자체는 변함이 없다는 것이다. 따라서 밝기값을 제거한 순수한 색상 정보만을 이용하면 이러한 환경변화에 관계없이 동일한 물체의 색을 효과적으로 인지할 수 있다는 것이다.


A. 피부색 검출


예를 들어, 영상에서 사람의 피부색을 검출하는 프로그램을 개발한다고 하자. 사람에 따라서는 피부색이 어두운 사람도 있고 밝은 사람도 있으며 인종에 따라서도 피부색에 많은 편차가 존재한다. 한지만 모든 인간은 공통적으로 붉은 색의 피가 흐르기 때문에 피부 밝기에 관계없이 붉은색 계열의 색을 포함하게 된다. 따라서, 피부색 검출을 위해서는 밝기 정보를 제거하고 순수 색상정보만을 이용하는 것이 훨씬 효과적임을 알 수 있다.




RGB 모델을 제외한 대부분의 색상 모델은 이미 밝기 성분(HSV의 V, YCbCr의 Y)과 색상 성분이 분리되어 있기 때문에 손쉽게 색 정보만을 활용할 수 있다. 또한 RGB 모델의 경우도 normalized rg를 이용하면 밝기 정보를 제거할 수 있다(r = R/(R+G+B), g = G/(R+G+B)).


그런데, 이러한 순수 색 정보만을 활용할 경우에 주의해야 할 사항이 있다. 순수 색 정보는 밝기값이 어두운 경우에는 매우 불안정해질 수 있다. 예를 들어, R=0, G=1, B=0인 경우와 R=1, G=0, B=0인 경우를 생각해 보자. 두 색 모두 우리 눈으로 보기에는 검은색이지만 색 정보로만 보면 완전히 다른 색이 된다. 예를 들어, normalized rg 모델에서는 첫번째 색은 r=0, g=1, 두번째 색은 r=1,g=0으로 극과 극의 색이 된다. 또한 HSV 모델에서도 H는 255/3만큼 차이가 나고 두 색 모두 S=255, V=0가 된다. 즉, 검은색 근처에서는 거의 노이즈(noise)로 생각해도 될 작은 차이가 엄청난 색 차이로 나타나기 때문에 단순한 색 차이만 가지고 차이를 계산할 경우 응용에 따라서는 심각한 문제를 발생시킬 수 있다. 따라서, 밝기만 사용할 것인지, 밝기와 색을 모두 사용할 것인지, 색만 사용할 것인지, 색만 사용하되 밝기 정보를 부분적으로 활용할 것인지 등은 응용과 상황에 따라서 잘 선택되어야 할 것이다. 중요한 점은 이러한 특성을 사전에 잘 파악하고 설계에 고려했는지 여부일 것이다.


B. 차선 인식


또 다른 예로 차선 인식 문제를 살펴보자. 차선은 크게 흰샌 차선과 노란색 차선이 존재한다. 흰색 차선의 경우에는 밝기 정보를 이용하는 것이 효과적이겠지만 흰색이 무채색이라는 것도 중요한 정보가 될 것이다. 가령, HSV 모델을 사용한다고 했을 때, 흰색 차선은 V>t1 이면서 S<t2인 조건을 만족시키도록 찾을 수 있을 것이다. 노란 차선의 경우에는 밝기정보를 제거하고 순수 색 정보를 이용하는 것이 좋을 것이다. 하지만 밝기가 어두우면 색 정보가 불안해지기 때문에 밝기가 일정한 값 이상이면서 순수 색 값이 노란색과 유사한 색을 찾으면 될 것이다 (HSV 모델의 경우, V>t1 이고 S>t2 이면서 H는 노란색의 H와 유사한 색).



※ 물론 여기에 적은 방법이 차선의 색을 찾는 가장 좋은 방법은 아닐 수 있습니다. 그냥 기본적인 참고용 정도로 생각하시기 바랍니다.



4. 색상 모델 사이의 변환 (참고용)


참고 목적으로 몇몇 색상 모델 사이의 변환 관계를 정리해 보았습니다.


RGB<->Gray

gray = (299*R + 587*G + 114*B)/1000    (R,G,B 별로 밝기가 다름을 반영한 것임)

R = G = B = gray


YCbCr<->RGB

Y = (299*R + 587*G + 114*B)/1000

Cb = 0.5643*(B - Y) + 128

Cr = 0.7132*(R - Y) + 128

R = (1000*Y + 1402*(Cr-128))/1000

G = (1000*Y - 714*(Cr-128) - 334(Cb-128))/1000

B = (1000*Y + 1772*(Cb-128))/1000


HSV<->RGB

RGB2HSV.cpp


☞ 이상으로 색상 모델에 대한 글을 마칩니다. 어떤 색상 모델을 선택할지는 제게도 상당히 어려운 문제입니다. 어떻게 보면 큰 차이가 없는 것 같기도 하고.. 영상 인식 목적에 가장 좋은 색 표현 방법은 무엇일까요?


by 다크 프로그래머

  • BlogIcon 곰돌이만세 2013.06.28 10:13 신고 ADDR 수정/삭제 답글

    제가 찾던 내용이네요. 간만에 다시 들어왔더니 기대를 저버리지 않는 양질의 포스트 감사드립니다^^

  • 노력파 2013.07.02 21:43 신고 ADDR 수정/삭제 답글

    오늘 면접보는데 HSV에 대해서 물어보더라구요.. 잘 설명을 못했는데 다시보니 이제 확실히 감이 잡히네요~
    다시는 까먹지 않아야겠습니다ㅋ

    • BlogIcon 다크pgmr 2013.07.03 08:57 신고 수정/삭제

      안녕하세요. 오랜만입니다. 저 같은 경우에는 제가 직접 해 봐야만 제 것이 되는 것 같더라구요.. 재미있게 하시고 좋은 결과 있기를 바라겠습니다.

  • 이창환 2013.08.13 10:50 신고 ADDR 수정/삭제 답글

    언제나 우수한 자료에 감사드립니다.

  • 2014.06.07 16:55 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2014.06.08 18:47 신고 수정/삭제

      이미지에서 컬러 정보를 표현하는 방법은 사용된 칼라 모델에 따라 다릅니다만 RGB 칼라 모델을 사용한다고 했을 때, 하나의 픽셀마다 R값, G값, B값 3개의 정보가 저장됩니다. 그리고 R,G,B 각각은 0~255 사이의 값을 가질 수 있습니다. R=G=B=0 모두 0인 경우는 검은색, R=G=B=255 면 흰색, R=255,G=B=0 이면 빨간색... 이런 식으로 픽셀의 컬러값이 표현됩니다.

  • BlogIcon 툭붕이 2015.03.09 12:52 신고 ADDR 수정/삭제 답글

    안녕하세요. 항상 공부할때 여러 도움을 얻고갑니다. ^^ 그런데, 제가 알기로는 HSV 모델에서는 H가 0~180의 정규화된 값으로 대부분 쓴다 그러는데, 이걸 어떻게 이해를 해야 할까요 ? 0~255 ? 아니면 0~180 ? 어느게 맞는걸까요 ?

    • BlogIcon 다크pgmr 2015.03.09 13:32 신고 수정/삭제

      모두 맞습니다. 또는 경우에 따라서는 0~1 사이로 정규화할 수도 있을 것입니다.

  • 학생 2015.08.06 19:45 신고 ADDR 수정/삭제 답글

    감사합니다. 많은 도움이 되었습니다.

  • Oepncv공부.. 2015.10.26 12:31 신고 ADDR 수정/삭제 답글

    대학원에 진학하기에 앞서 제가 졸업작품으로 opencv 얼굴인식에 관하여 연구하였는데요..
    Opencv 는 어떤 알고리즘을 쓰고 그 알고리즘의 동작과정 이런것들은 어디서 알수있을가요,..? 구글링해도 관련 정보가 잘 나오지 않아서 도움좀 요청합니다.. ㅜㅜ

    • BlogIcon 다크pgmr 2015.10.26 13:50 신고 수정/삭제

      opencv는 매뉴얼이 잘 되어 있는 편이 아니라서 사용법이나 출처 등을 알기기 쉽지는 않습니다. 그래도 opencv 웹 메뉴얼(http://docs.opencv.org/)에 일부 관련 정보가 나와 있는 경우가 있으니 사용하고 계시는 함수의 메뉴얼 파트를 참조해 보시기 바랍니다.

  • 도망자 2015.11.24 17:46 신고 ADDR 수정/삭제 답글

    안녕하세요. 이번 과제에 대해서 검색하다가 들어오게 되었습니다. 물어보고싶은게 있는데요..
    이번에 제가 인공지능 관련 프로젝트로 '색을 입력해서 그 색의 이름을 말해주는'프로그램을 만들어볼려고 합니다.
    색의 DB를 미리 입력해놔서 이미지의 특정 부분을 잘라 프로그램에 입력하면 그 색의 이름을 말해주는 프로그램이며 이론은 어떤걸 쓸지 잘 모르지만 결정트리를 사용하여 구분하면 될꺼같다고 생각했습니다.
    헌데 이것에 대해 교수님께 물어보니 기존에 수업시간에 떳던 MFC기반 RGB프로그램을 쓰면 안되고 YCbCr을 사용해야 알수있을꺼라 하셔서 어떻게 해야될지를 잘 모르겠습니다.
    RGB만 사용해서 DB에서 입력한 이미지의 RGB값에 맞는 이미지를 찾는건 안되는건가요? 혹시 YCbCr을 사용해야한다면 글에서 설명해주신 RGB->YCbCr의 값으로 바꾸는 공식을 써서 MFC기반 프로그램에서 어떻게 이미지를 가져올수 있는지 혹시 알고계시나요...?

    장황하게 써서 이해가 안되실수도 있겠지만.. MFC쪽에 조금이라도 아는걸 말씀해주시면 감사하겠습니다 ㅠ

    • BlogIcon 다크pgmr 2015.11.25 09:14 신고 수정/삭제

      일반적으로 RGB로 안될 이유는 없습니다. 이미지 픽셀에 접근하기 위해서는 OpenCV에 대해 공부해 보시기 바랍니다.

  • 2016.01.05 16:01 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2016.01.05 16:08 신고 수정/삭제

      안녕하세요. 반드시 hsv로 변환해서 사용해야 할 이유는 없습니다. 색의 유사도를 측정할 때 full color를 사용할 경우에는 rgb나 hsv나 큰 차이는 없습니다. 다만, hsv의 경우에는 h, s, v 각각에 대한 직관적인 해석이 가능하며 각각의 가중치를 다르게 주거나 h, s, v 중 일부 성분만을 활용할 수 있는 등의 자유도가 좀더 좋다고 할 수 있겠습니다.

  • troublemaker 2016.04.18 01:20 신고 ADDR 수정/삭제 답글

    질문이 있습니다..
    피부색과 굉장히 유사한 그러나 피부는 아닌 것이 피부 위에 올려져 있다고 한다면..
    이 경우는 피부색 검출의 변수가 될수도 있을 것 같은데.. 맞나요?

    • BlogIcon 다크pgmr 2016.04.18 10:50 신고 수정/삭제

      피부색은 사람마다 그리고 인종마다 변화의 폭이 크기 때문에, 그리고 심지어 동일 사람 내에서도 부위에 따라서 차이가 발생하기 때문에 색상만 가지고 피부 여부를 판별하기는 어렵다고 볼 수 있습니다. 따라서 피부색 검출의 주 용도는 피부 영역을 정확히 찾아내는 것이 아니라 피부일 가능성이 낮은 영역을 제거함으로써 ROI를 좁히는 것이 주 목적이라고 볼 수 있습니다. 당연히 피부색과 유사한 물체가 있으면 색상만으로 이를 구분하는 것은 어렵습니다.

    • troublemaker 2016.04.19 18:10 신고 수정/삭제

      아네 감사합니다..
      그렇다면 YCbCr의 경우 위에서 말씀하신내용처럼 Y(밝기) 성분을 제외하고 CbCr의 거리를 이용하여 피부색을 검출하는 경우는, 어떻게 보면 Y, Cb,Cr 사이의 거리를 이용하여 검출 하는 것보다는 검출률이 낮다고 판단할 수도 있을까요? (제가 잘못 이해하고 있다면 정정 부탁드립니다)

      테스트 해보니 YCbCr을 통해 피부색을 검출할 경우, 색차에는 둔감해도 형광등이랑 할로겐조명에서의 검출 차이가 있더라고요, 이렇게 보면 조명(밝기?)도 적잖은 영향을 주는 것으로 판단되는데... (그래도 그나마 밝기에 영향을 덜 받는 모델이 YCbCr이라고 어디서 주어듣기는 했으나..)
      이 경우 실제로 영상처리 할 때 할로겐 조명색을 변환(혹은 제거)해서 처리한 사례도 있나요?

    • BlogIcon 다크pgmr 2016.04.20 06:44 신고 수정/삭제

      조명이 바뀌면 색이 바뀝니다.. 색온도, 화이트 밸런스, color consistency 등으로 내용을 검색해 보시기 바랍니다. 그리고 현재 어떤 종류의 조명 밑에 있는지를 알수 있다면 조명에 의한 색의 변화를 제거할 수 있을 것입니다. 카메라의 오토 화이트밸런싱에서 하는 일이 정확히 이것입니다.

  • 궁금 2016.05.11 22:29 신고 ADDR 수정/삭제 답글

    영상에서 가장 많은 비중을 차자하는 메인컬러를 검출하려고 하는데 아무리 검색해 봐도 잘 모르겠네요. 힌트를 좀 구실 수 있을까요

    • BlogIcon 다크pgmr 2016.05.11 23:24 신고 수정/삭제

      글쎄요.. 메인컬러를 어떻게 정의하느냐에 따라 방법이 조금씩 달라질 것 같은데요,
      평균 색상이라면 이미지의 모든 픽셀의 색상을 평균하면 될 것이고 이미지 전체에 깔린 색조(붉은 조명 밑에서 이미지가 전체적으로 붉게 보이는 경우)를 구하는 것이라면 white balancing에서 사용하는 방법들을 적용해야 할 것입니다. 그렇지 않고 최빈값을 구하는 것이라면 픽셀들의 색상들을 그룹핑(k-means clustering 기법 등을 활용)한 후에 가장 큰 클러스터의 평균 색상을 메인 색상으로 하는 방법도 있겠습니다.

  • 궁금 2016.05.17 10:27 신고 ADDR 수정/삭제 답글

    도움말씀 감사합니다. 말씀대로 최빈값, 즉 어떤 이미지에서 가장 많은 비율을 차지하고 있는 색을 검출한다고 할때, k-means 클러스터링을 해보았는데요. K의 숫자 즉 클러스터 숫자대로 labeling이 되어있어 그 크기를 알아낼 수 있다는 말씀이겠죠? 이 과정을 알고리즘으로 세우질 못하겠네요. 코딩 초보입니다. ㅠㅠ

  • 치치 2016.09.13 17:17 신고 ADDR 수정/삭제 답글

    항상 좋은 글 감사합니다.

  • 고내기 2016.09.20 19:43 신고 ADDR 수정/삭제 답글

    안녕하세요. 학부시절부터 벌써 5년넘게 블로그 드나드는 독자(?)입니다. 질문이 있습니다.
    혹시 Gray Img를 YCbCr모델로 변경하는 것도 가능할까요? 사용하고싶은 IP가 있는데, 입력 영상의 format이 YCbCr로 지정되어 있어 Gray -> YCbCr로 변경을 해 사용해야 하나 싶습니다. 다크님께서는 혹시 Xilinx Zynq 등은 사용하지 않으시는지요? 석사까지 Matlab으로 편하게 코딩하다가 회사에서 FPGA 하려니 적응이 안되어 힘이 드네요...ㅠㅠ

    • BlogIcon 다크pgmr 2016.09.21 11:33 신고 수정/삭제

      단지 포맷만 바꾸는 것이라면 Gray를 YCbCr로 변환하는 건 어렵지 않습니다. Gray를 먼저 RGB로 변환한 후에 RGB->YCbCr로 변환하면 됩니다. 그리고 저도 편하게 코딩만 해서 fpga 등은 전혀 아는 바가 없습니다.. ^^

  • 감사합니다 2016.11.07 00:47 신고 ADDR 수정/삭제 답글

    비전 공부를 하면서 잠깐 모르는게 있어서 검색하면 항상 나오는 블로그네요 ! 항시 보게 되는데 댓글을 남겨본적이 없네요. 항상 양질의 글 감사드립니다 !

  • 새내기 2017.01.16 17:28 신고 ADDR 수정/삭제 답글

    안녕하세요 영상처리에 입문하지 얼마 되지않은 학생입니다.
    우선 늘 좋은 포스팅에 감사의 말씀을 전합니다.
    다름이 아니라 이번 포스팅을 보면서 질문이 잇어 길을 남기게 되었습니다.
    만약 어두운 하얀색과 밝은 검은색을 비교하여 구별하고 싶다면 어떻게 하는 것이 좋은 방법일까요?
    저는 히스토그램으로 구별이될것이라고 생각했는데 생각보다 잘 동작하지 않아 글을 남겨봅니다.

  • windsblues 2017.06.08 14:26 신고 ADDR 수정/삭제 답글

    안녕하세요, 다크프로그래머님. 칼라 이미지를 9구획으로 나누어, 각 구획별로 대표색을 정하려고 합니다. 어느 한 색이 압도적으로 많은 경우에는 문제가되지 않는데, 여러 색이 섞여있는 경우에는 어떤식으로 대표색을 정해야 할지 모르겠네요ㅠ 혹시 관련 논문이나 이론 알고계신게 있으신지요?

    • BlogIcon 다크pgmr 2017.06.08 16:17 신고 수정/삭제

      따로 관련 이론에 대해서 아는 건 없구요, 자신과 유사한 색상의 픽셀이 가장 많은 색을 대표색으로 정하면 되지 않을까요?

  • dd 2017.07.21 16:40 신고 ADDR 수정/삭제 답글

    감사합니다 기초적인 내용을 공부하는데 큰 도움이 됐습니다

  • 질문있습니다. 2017.10.30 10:15 신고 ADDR 수정/삭제 답글

    HSV와 YUV변환은 비가역적 연산인가요??
    즉, RGB에서 HSV나 YUV로 변환하고 다시 RGB로 변환해도 값이 유지되나요??

    • BlogIcon 다크pgmr 2017.11.01 11:35 신고 수정/삭제

      색상모델의 변환은 가역연산으로서 당연히 값이 유지되어야 합니다.

  • 질문있어요 2018.01.22 17:04 신고 ADDR 수정/삭제 답글

    안녕하세요. 위의 주제와 다소 일치하지 않지만 궁금한점이 있어 여기에 질문을 드려 죄송합니다.
    다름이 아니라 같은 카메라 두대를 연동시켜서 촬영을 하는데
    두 카메의 RGB값이 다르게 나타납니다.
    그냥 시각상으로 보기에는 별로 차이가 없지만, 제가 만들 프로그램이
    물체에 압력이 가해지면 압력의 정도에 따라 RGB값이 변하게 되는 프로그램을 준비중이라.
    조그마한 차이에도 예민해져야 생각이 듭니다.
    이러한 색각 보정 프로그램들을 찾아보려고 하는데 찾기가 매우 막막하네요
    혹시 추천받을 만한 사이트같은게 있을까요?

    • BlogIcon 다크pgmr 2018.01.23 23:51 신고 수정/삭제

      사실 전 색상 캘리브레이션(color calibration)에 대해서는 잘 몰라서.. 원리만 안다면 직접 구현하는 것도 그리 어려울 것 같진 않은데요, 색상 팔레트 같은 것을 앞에 놓고 찍어서 나오는 사진의 색을 분석해서 보정해 주면 되지 않을까 싶습니다.

    • 질문있어요 2018.01.24 09:18 신고 수정/삭제

      감사합니다.
      조금 시간이 들긴 하겠지만
      그래도 방법을 찾은거같아요