반응형

파이썬 강의 47

파이썬 openCV 16. RGB에서 YCbCr로(RGB to YCbCr)

파이썬 openCV 16번째 강의는 RGB에서 YCbCr로(RGB to YCbCr)입니다. YCbCr는 일반적으로는 들어보신적이 없으실겁니다. 하지만 이 역시 꽤 많이 사용된 색공간으로, 이번 시간에 자세히 알려드리겠습니다. 0. YCbCr? YCbCr은 일반적으로 실생활에 사용되는 색공간은 아닙니다. YCbCr은 RGB나 cmyk, HSV처럼 무언가의 약자가 아닌 Y(휘도)와 Cb/Cr(색채/크로마)의 값으로 이루어 졌다고 해서 YCbCr입니다. 그래서 YCbCr이라고 하는 경우도 있고, YCrCb 또는 YCC라고 하는 경우도 있습니다. YCbCr의 색공간입니다. RGB와 비슷한 모양인것을 확인하 실 수 있으실겁니다. 그 이유는 YCbCr은 RGB의 인코딩 방식중 하나이기 때문에 RGB와 거의 비슷한 ..

파이썬 openCV 15. RGB에서 HSV(HSI)로(RGB to HSV)

파이썬 openCV 15번째 강의는 RGB에서 HSV(HSI)로(RGB to HSV)입니다. 이번시간에도 RGB에서 HSV로 바꾸는 공식과, 그 공식을 적용한 결과를 위주로 강의하겠습니다. 0. HSV? HSV는 Hue(색상), Saturation(채도), Value(명도)의 약자입니다. 때때로 V가 아닌 Intensity로 사용한 HSI나 Brighteness를 사용한 HSB, Lightness를 사용한 HSL이라고도 표기합니다. HSV는 RGB의 3차원 정육면체인것과는 매우 다른 3차원 원뿔 모양의 색 구조를 가지고 있습니다. 이때 원의 각도를 통해색상을, 원의 중심에서 얼마나 멀어져 있느냐로 채도를, 높이가 어느정도인가로 명도를 나타냅니다. 이러한 모양이 낮설게 느껴지실 수 있으시지만, 대부분의 사..

파이썬 openCV 14. RGB에서 CMYK로(RGB to CMYK)

파이썬 openCV 14번째 강의는 RGB에서 CMYK로(RGB to CMYK)입니다. 기본적으로 색을 표현할 때 RGB를 많이 씁니다. 하지만 실 생활에서 색을 만들 때는 RGB보다는 CMY가 더 많이 사용됩니다. 심지어 RGB를 사용하고 있다고 생각하는 부분에서도 사실 CMY를 사용하는 것이 더 많습니다. 이번 시간에 RGB와 CMY의 차이와 RGB에서 CMY로 바꾸는 방법을 알려드리겠습니다. 0. CMY(K)? RGB는 Red(빨강), Green(초록), Blue(파랑)의 약자인것은 많이 들어보셨을 겁니다. 이 3가지 색상을 조합해서 여러 가지 색을 표현할 수 있습니다. 그런데 학교에서 미술시간에 물감을 이용해서 R, G, B의 색을 섞어보신 적이 있으십니까? 원래의 RGB 값이 각각 255(최대)..

파이썬 openCV 13. 블러링(blurring)/스무딩(smoothing)/샤프닝(sharpening)

파이썬 openCV 13번째 강의는 블러링(blurring)/스무딩(smoothing)/샤프닝(sharpening)의 3가지입니다. 이 3가지의 기법은 모두 필터를 통해 진행된다는 공통점이 있어, 한 번에 진행해보려고 합니다. 기본적인 필터 적용 방법은 이전 강의에서 자세히 설명했으니, 참조하시기 바랍니다. 2020/11/25 - [파이썬/openCV] - 파이썬 openCV 12. 엠보싱 기법(embossing) 파이썬 openCV 12. 엠보싱 기법(embossing) 파이썬 openCV 12번째 강의는 엠보싱 기법(embossing)입니다. 이번 강의도 중첩 for문을 사용하는 방식과, 내장 함수를 사용해서 시간을 단축시키는 방법이 있습니다. 이번 강의부터는 최대한 중첩 for marisara.ti..

파이썬 openCV 12. 엠보싱 기법(embossing)

파이썬 openCV 12번째 강의는 엠보싱 기법(embossing)입니다. 이번 강의도 중첩 for문을 사용하는 방식과, 내장 함수를 사용해서 시간을 단축시키는 방법이 있습니다. 이번 강의부터는 최대한 중첩 for문을 지양하고, 내장 함수를 사용하는 방식으로 강의하도록 하겠습니다. 0. 엠보싱? 위키백과상의 엠보싱은 "엠보싱 (embossing) 은 직물, 종이, 금속 등의 표면에 돋을새김으로 무늬를 찍어내는 가공 방법." 으로 설명하고 있습니다. 사전적 정의로 파고들기에는 말이 어려우므로 예시로 설명하겠습니다. 엠보싱은 이처럼 무언가에 입체감이 느껴지게 만드는 방식입니다. 엠보싱은 위 사진처럼 주변에 비해 튀어나오게 하는 방식과(엠보싱), 주변에 비해 들어가게 하는 방식(디보싱)이 있습니다. 대부분의 ..

파이썬 oepnCV 11. 비트 연산 (bitwise operation)

파이썬 openCV 11번째 강의는 비트 연산 (bitwise operation)입니다. 기본적으로 비트 연산은 openCV에서 자체적으로 지원하는 연산이기도 하고, 원리도 그렇게 어렵지 않으니 자체 지원 함수를 사용하여 빠르게 넘어가겠습니다. 0. 비트 연산 (bitwise operation)? 1비트는 0과 1로 이루어진 디지털 세계에서의 최소 단위입니다. 하지만 기본적인 영상은 R, G, B로 이루어진 0부터 255 사이의 값을 가진 3차원 행렬입니다. 그레이 스케일을 예시로 들어도 0부터 255를 가진 1차원 행렬입니다. 즉 비트와는 크게 상관이 없다는 이야기입니다. 하지만 우리는 이전에 영상을 이진법처럼 분류하는 방법을 배운 적이 있습니다. 2020/11/14 - [파이썬/openCV] - 파이..

파이썬 openCV 10. 가우시안 노이즈(Gaussian Noise)

파이썬 openCV 10번째 강의는 가우시안 노이즈(Gaussian Noise)입니다. 이번 강의에서는 가우시안 노이즈를 생성하는 방법과, 이미지 평균 연산을 통한 가우시안 노이즈 제거 방법을 동시에 알려드리겠습니다. 0. 가우시안 노이즈? 우선 가우시안 노이즈가 무엇인지 알려드리겠습니다. 이런 식으로 사진이 지지직 거리는 느낌의 이미지를 보신 적이 있으실 겁니다. 이런 잡음을 가우시안 노이즈라고 합니다. 이름이 가우시안 노이즈인 이유는, 이름처럼 가우스 함수에 따른 분포(가우시안 분포)를 따르고 있기 때문에 가우시안 노이즈라고 이름 붙여졌습니다. 가우시안 분포는 위의 공식으로 나타냅니다. 하지만 우리는 이런 공식 따위 알 필요는 없고, 그저 저런 공식에 따르는 잡음이라고만 생각하셔도 좋을 것 같습니다...

파이썬 openCV 9. 산술 연산(arithmetic operation)

파이썬 openCV 9번째 강의는 산술 연산입니다. 산술 연산은 매우 쉬운편에 속하니 빠르게 진행하겠습니다. 0. 산술 연산? 산술연산은 총 3가지 종류가 있습니다. 일반적인 덧셈 연산, 가중치를 줘서 연산하는 알파 연산, 일반적인 뺄셈 연산이 있습니다. 여기서 눈치 채신 분들도 있으시겠지만, 산술 연산은 그저 더하기 빼기 입니다. 이미지를 곱하거나 나눌수는 없으니 더하기 빼기로 이미지를 조작하는걸 말하는겁니다. 1. openCV에서의 산술 연산 산술연산은 그저 더하기 빼기이니 빠르게 코드 설명부터 들어가겠습니다. 그리고 이번 강의에서는 두개의 이미지 크기가 같다는 전제 하에 가능한 코드입니다. 두 이미지 크기가 다르다면, 조금 더 작업이 필요합니다. img1 = cv2.imread('lenna.png'..

파이썬 openCV 8. 히스토그램 명세화(histogram specification)

파이썬 openCV 8번째 강의는 히스토그램 명세화입니다. 히스토그램 명세화는 히스토그램 평활화와 같이 명암대비를 개선시키는 기법 중 하나입니다. 하지만 명세화는 평활화와는 완전히 다른 방법으로 명암대비를 개선시키며, 이는 평활화 때보다 더 긴 코드가 필요합니다. 0. 히스토그램 명세화? 히스토그램 명세화는 사실 명암대비를 개선시키는 방법이라기보다는 영상의 히스토그램을 사용자가 원하는 모양으로 바꿀 때 쓰는 기법입니다. 하지만 명암대비가 이상한 영상을 만들려고 하는 사람은 잘 없겠죠? 그래서 히스토그램이 한쪽으로 치우친 영상을 사용자가 원하는 모양대로 만들어준다면 명암대비가 개선되기에 명암대비를 개선시키는 기법이라 할 수 있습니다. 히스토그램 명세화의 기본 원리를 간단하게 설명하면 다음과 같습니다. 1...

파이썬 openCV 7. 히스토그램 평탄화(Histogram equalization)

파이썬 openCV 7번째 강의는 히스토그램 평탄화(Histogram equalization)입니다. 히스토그램 평탄화는 히스토그램 평활화, 히스토그램 균등화라고도 부릅니다. 평탄화는 이름처럼 히스토그램을 평평하게 만들어 주는 작업이라고 할 수 있습니다. 0. 히스토그램 평탄화? 일반적인 이미지는 괜찮지만, 이미지 중에 히스토그램이 특정 영역에 집중되어 있을 수 있습니다. 그럴 때 히스토그램 평탄화를 통해 히스토그램이 집중되어있는(히스토그램 그래프에서 한쪽이 높은) 부분을 평평하게 만들어줄 수 있는 거죠. 설명만 들으면 명암대비 스트레칭과 비슷한 부분이 있다고 느껴지실 겁니다.(아니면 어쩔 수 없고요) 실제로 히스토그램 스트레칭과 비슷한 효과를 줄 수 있지만 결과는 조금 다릅니다. 1. openCV에서의..

반응형