반응형

파이썬 강의/openCV 29

파이썬 openCV 18. 에지검출 : 로버츠(roberts), 프리윗(prewitt), 소벨(sobel)

파이썬 openCV 18번째 강의는 에지 검출 : 로버츠(roberts), 프리윗(prewitt), 소벨(sobel)입니다. 이 세 가지는 대표적인 에지 검출의 방법 중 하나입니다. 세 가지 모두 방법이 비슷하여 한번에 알려드리도록 하겠습니다. 0. 로버츠(roberts), 프리윗(prewitt), 소벨(sobel)? 로버츠, 프리윗, 소벨 모두 에지검출의 방법 중 하나입니다. 이 세 가지는 이전 강의에서의 유사 연산자와 차 연산자와는 달리 미분을 이용한 방법입니다. 이전 강의에서 4가지의 에지 패턴이 있다고 말씀드렸습니다. 이때 패턴들을 보시면 밝기의 고저가 있음을 확인하실 수 있습니다. 이러한 기울기를 미분하면 값이 나오게 되고, 그 값을 토대로 에지를 검출하게 됩니다. 하지만 일반적인 프로그램에서는..

파이썬 openCV 17. 에지검출 : 유사 연산자(Homogeneity)와 차 연산자(Difference)기법

파이썬 openCV 17번째 강의는 에지 검출의 방법으로 유사 연산자(Homogeneity)와 차 연산자(Difference) 기법을 알려드리겠습니다. 에지 검출은 대표적으로 7가지의 방법이 있으며, 3번의 강의에 걸쳐 설명하도록 하겠습니다. 0. 엣지(edge)? 영상처리에서 에지 또는 엣지는 밝기가 낮은 값에서 높은 값으로, 또는 높은 값에서 낮은 값으로 변하는 지점을 말합니다. 그렇기에 이는 영상을 구성하는 객체 간의 경계선이 되게 됩니다. 이러한 에지를 검출하여 컴퓨터가 물체를 식별하고, 그 모양과 크기를 인지할 수 있도록 하는 정보를 얻을 수 있습니다. 이러한 에지의 패턴으로는 지붕형, 선형, 계단형, 경사형의 4가지가 있습니다. 지붕형은 밝기의 차이가 급격히 변하지 않으므로, 에지가 두껍게 나..

파이썬 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'..

반응형