[Computer Vision/OpenCV] 15. Segmentation
·
🦄AI/Computer Vision
이번 포스팅에서는 image segmatation task에 대한 간략한 정리를 하려고 한다.이미지 segmatation이 무엇이고, 어떤 기법들이 사용되는지 초점을 맞추어 작성하려 한다. 1. Image segmentation이미지 segmentation은 이미지를 의미있는 영역(segments)로 분할하는 작업을 말한다.이미지를 겹치지 않는, 유사한 의미의 region들로 나눈다고 생각하면 된다.객체 인식이나, 장명 이해, 의료 영상 분석, 그리고 비전 시스템이 물리적인 영역으로 확장하는 데에 매우 중요한 역할을 하는 기술이다. 이 중에서도 Color segmentaio은 이미지의 색상 정보를 바탕으로유사한 색을 가진 픽셀들 끼리 그룹화 하여 세그멘테이션 하는 방식이다. segmentation을 하는..
[Computer Vision/OpenCV] 14. Image Denoising
·
🦄AI/Computer Vision
오늘 포스팅에서는 대표적인 Degradation model 인 salt and pepper 와 gaussian noise를 없애는 denoising방식에 대해서 알아보고 코드 실습을 한다. 1. Salt & Pepper NoiseSalt and Pepper noise는 렌덤한 위치에 생성되는 점 형태의 노이즈이다.intensity 가 255 도는 0인 픽셀이 생성되는데, 이는 주로 센서의 오류나 전송 중에 생긴 여러 문제로 인해 발생한다. 그럼 이 노이즈는 어떻게 denoising할 수 있을까? 1.1. Low-pass Filter이 노이즈의 경우  low pass filter를 사용해서 고주파 잡음을 제거하는 방식으로 denoising 할 수 있다.예를 들면, Uniform Averaging Filte..
[Computer Vision/OpenCV] 13. Image Noise & Degradation
·
🦄AI/Computer Vision
이 포스팅에서는 Image Degradation과 Image Noise에 대해서 알아본다. 1. Image Degradation TypeImage Restoration(복원)의 목표는 이미지의 degradation(손상)을 줄이는 것 이다.좋은 이미지 복원을 위해서는 이미지의 손상에 대한 이해가 필요하다. 이미지 손상의 유형은 다음과 같다.노이즈이미지에 무작위 값이 추가되어서 이미지의 세부 정보를 왜곡시키는 현상을 노이즈라고 한다.이미지 센서, 전송과정 중 손상, 조명 등 다양한 원인에 의해 발생한다.대표적으로 가우시안 노이즈, Salt&Pepper 노이즈, 포아송 노이즈 등이 있다.Out of focus Blur렌즈의 초점이 정확하지 않을 때 발생한다.렌즈가 가정한 초점 거리와 피사체의 거리가 다른경우..
[Computer Vision/OpenCV] 12. Unsharp Masking
·
🦄AI/Computer Vision
저번 포스팅에서 Low pass filter와 High pass filter가 무엇인지, 어떤것이 있는지에 대해서 알아보았다.이번에는 이 필터들을 이용해서 이미지를 조금 더 선명하게 바꾸는 Unsharp Masking에 대해서 알아보자 https://he-kate1130.tistory.com/139 [Computer Vision/OpenCV] 10. Spatial Filtering & Convolution 개념지난시간에는 이미지의 히스토그램을 이용해 픽셀 값들을 다루는 방법들을 정리했다.오늘부터는 이미지의 spatial data를 다루는 방식들에 대해서 정리한다.이미지의 공간 데이터를 처리하기 위he-kate1130.tistory.com Unsharp Masking이미지를 선명하게 하기 위한 기법을 말한..
[Computer Vision/OpenCV] 11. Spatial Filtering
·
🦄AI/Computer Vision
이번 포스팅은 여러가지 필터에 대해서 알아보고 OpenCV로 직접 실습하는 내용을 담았다.먼저 Low-pass, High-pass filter가 뭔지 알아보고Uniform Mean, Gaussian, Sobel, Laplacian filter에 대해서 알아본다. 저번 포스팅에서 필터링 연산에 대해서 가볍게 다루었기 때문에 기초적인 연산 방법 정리는 제외하였다. 그래도 내가 읽으려고 쓰는 글이니까 최대한 쉽게... 쓰는 중이다.https://he-kate1130.tistory.com/139 [Computer Vision/OpenCV] 10. Spatial Filtering & Convolution 개념지난시간에는 이미지의 히스토그램을 이용해 픽셀 값들을 다루는 방법들을 정리했다.오늘부터는 이미지의 spat..
[Computer Vision/OpenCV] 10. Spatial Filtering & Convolution 개념
·
🦄AI/Computer Vision
지난시간에는 이미지의 히스토그램을 이용해 픽셀 값들을 다루는 방법들을 정리했다.오늘부터는 이미지의 spatial data를 다루는 방식들에 대해서 정리한다. 이미지의 공간 데이터를 처리하기 위해 우리는 필터링 연산을 사용한다.따라서 본격적인 방법을 살펴보기 전에, 먼저 필터링에 대해 알아보자. Spatial Filtering영상 처리에서 Spatial filtering은 이미지에 필터연산을 적용해 이미지를 수정하는 방식을 말한다. 필터 연산은 영상의 공간영역에서 특정 영역 단위로 필터링 커널 함수와 픽셀 값의 곱셈 및 합산 연산(Dot Product)을 수행하는 방식이다.수식으로 표현하면 다음과 같다. 이 식을 그림으로 간단하게 보면 아래와 같다. 필터 연산을 위해 미리 정의한 커널을 다른 말로 마스크라..
[Computer Vision/OpenCV] 8. Histogram Equalization
·
🦄AI/Computer Vision
저번 포스팅에서는 이미지의 대비를 증가시키는 Histogram Stretching애 대해서 알아보았다.이번에는 히스토그램의 분포를 균일하게 만드는 Histogram Equalization을 살펴보자.Histogram EqualizationHistogram Equalization은 Stretching과 비슷하게 이미지의 대비를 증가시키는 효과를 가진다.그러나 둘의 다른 점은Stretching은 기존 히스토그램의 범위를 확대하는 것이고, Equalization은 전체 범위(0-255)에서 히스토그램의 분포를 최대한 균일게 만든다는 점이다.  Histogram Equalization 과정$M$: 이미지 cols$N$: 이미지 rows $n_k$: k intensity에서의 히스토그램 높이 즉, Histogra..
[Computer Vision/OpenCV] 7. Histogram Stretching
·
🦄AI/Computer Vision
우리는 저번 포스팅을 통해서 히스토그램이 무엇인지 알게 되었다.오늘은 Histogram Transformation중 하나인 Histogram Stretching에 대해서 알아보자. Histogram Stretching (Contrast Stretching)이미지의 히스토그램을 뽑아봤더니 다음처럼 나왔다고 하자.  히스토그램의 값들이 한 쪽에 뭉쳐있는 것을 확인할 수 있다.이럴 때 우리는 이 이미지를 대비가 약한, Flat 한 이미지 라고 한다. Histogram stretching은 이미지의 대비를 증가시키기 위해서 픽셀의 값 범위를 더 넓은 범위로 확장시키는 것을 말한다. 식을 이해해 보면, 기존의 밝기 범위 $i_{max} - i_{min}$을 사용하여 이미지의 범위를 normalize하는 것과 같다..
[Computer Vision/OpenCV] 6. Histogram
·
🦄AI/Computer Vision
이번에는 저번 포스팅 Pixel Arithmetic Operation에 이어서픽셀 수준에서의 이미지처리에 많이 사용하는 히스토그램과 PDF, CDF에 대해서 살펴보자. 출처👇더보기https://docs.opencv.org/4.11.0/d6/dc7/group__imgproc__hist.html#ga4b2b5fd75503ff9e6844cc4dcdaed35d OpenCV: Histogramsvoid minMaxLoc(InputArray src, double *minVal, double *maxVal=0, Point *minLoc=0, Point *maxLoc=0, InputArray mask=noArray()) Finds the global minimum and maximum in an array. void..