[안드로이드로 배우는 OpenCV] 히스토그램 역투영

히스토그램 역투영(Histogram backprojection) 히스토그램 역투영이란 영상의 각 픽셀이 주어진 히스토그램에 얼마나 일치하는지 검사하는 방법으로, 객체의 모양은 무시하고 단순히 컬러 분포만으로 임의의 색상 영역을 검출할 때 효과적이다. 다음의 이미지에서 살색을 검출해보도록 하자. 우선 입력 영상에서 미리 살색영역에 대한 히스토그램을 구해야한다. 빨강색으로 지정한 영역을 살색이라 가정하고, 해당 영역의 히스토그램을 구했다. 원한다면 다른 더보기…

글쓴이 Charlezz,

[안드로이드로 배우는 OpenCV] 특정 색상 영역을 추출하기

만약 다음과 같은 이미지가 있다고 가정할 때 녹색 초콜렛(m&m)만 검출 하고 싶다면 어떻게 해야할까? RGB 색공간에서 녹색영역을 추출한다고 가정해보자. 다음과 같이 각각의 색성분에 대한 범위(Range)를 특정하여 조건에 부합하는 픽셀만 검출하면 된다. 하지만 특정 색상을 검출하기 원한다면 RGB 색공간보다는 HSV 색공간을 사용하는 것이 적합하다.  HSV 색공간을 가시화한 위의 그림을 살펴보자. H는 더보기…

글쓴이 Charlezz,

RGB, HSV, YUV 색공간 이야기

색공간은 주로 세자리 또는 네자리의 숫자 또는 문자 등으로 색의 특징을 설명하기 위한 수학적 방법이다. 가장 많이 쓰이는 색공간은 RGB, YUV, HSV 등이 있다. 각 색공간의 특징에 대해서 알아보자. RGB RGB는 빛의 삼원색인 빨간색(R), 초록색(G), 파랑색(B)을 의미하며, 이 3가지 색을 가산혼합하여 색을 표현하는 방식이다. 가산혼합은 색을 섞을수록 밝아지는 특징이 있다.  더보기…

Android 12 빠르게 살펴보기!

Android12 미리보기 안드로이드 12에 대한 최신 정보는 공식 문서에서 확인할 수 있다. 안드로이드는 전통적으로 메이저 버전에 알파벳 순으로 디저트 이름을 붙여왔다. Pie 이후로는 Q로 시작하는 이름대신 Android10이라 명명했다. 하지만 내부적으로는 여전히 디저트 이름을 붙이고 있다 Queen Cake(or Quince Tart, Android10) Red Velvet Cake (Android11) Snow Cone (Android12) 출시 일정 2021년 더보기…

mds_store의 CPU 점유율이 갑자기 치솟을 때

  아무것도 안했는데 갑자기 맥이 버벅이기 시작했다. ActivityMonitor를 띄워 CPU 점유율이 높은 프로세스 순으로 나열하니 mds_store가 점유율을 엄청나게 가져가고 있었다.  mds_store가 무엇인지 검색해보니 Spotlight관련 프로세스라고 한다. 아마 백그라운드에서 인덱싱을 하면서 점유율을 엄청 가져가는 것 같은데 잠자기 모드 일때 안하고 왜 지금하는지 모르겠다. 나는 알프레드를 사용하기 때문에 Spotlight는 사용하지 않는다. 그래서 더보기…

글쓴이 Charlezz,

[안드로이드로 배우는 OpenCV] 이미지의 논리 연산

이미지는 픽셀들의 집합이며, 하나의 픽셀은 색상에 따라 n바이트로 표현되곤한다. 회색조 이미지의 경우 보통 한 픽셀이 0~255값을 가지는데 값의 경우의수가 256가지인셈이다. 그러면 2^8 = 256 이므로 8bit(1byte)의 메모리가 필요하다. 예) 10101000 두 이미지의 같은 좌표에 있는 픽셀들에 비트 연산을 수행할 수 있다. 비트 연산을 통해 특정 영역을 도려내거나 합성하고, 이미지를 반전시킬 더보기…

[안드로이드로 배우는 OpenCV] 히스토그램 그리고 스트레칭 및 평활화

히스토그램 히스토그램은 도수분포표를 그래프로 나타낸 것이다. OpenCV에서는 영상의 픽셀 값 분포를 그래프의 형태로 표현한 것을 말한다. OpenCV에서는 calcHist() 함수를 통해 히스토그램을 구할 수 있다. 예제코드를 살펴보자. val images = listOf(src) val channels = MatOfInt(0) //grayscale은 채널이 하나이므로 0 val mask:Mat = … // 마스크 val hist = Mat() // 히스토그램 더보기…

글쓴이 Charlezz,