Top 11 라플라시안 필터 The 28 Detailed Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 라플라시안 필터 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Chewathai27.com/to team, along with other related topics such as: 라플라시안 필터 라플라시안 필터 C++, 라플라시안 필터 파이썬, 라플라시안 연산자, 벡터 라플라시안, 매트랩 라플라시안 필터, 라플라시안 행렬, 라플라시안 계산, LoG 필터


OpenCV Filtering [ Python 데이터 분석과 이미지 처리 ]
OpenCV Filtering [ Python 데이터 분석과 이미지 처리 ]


[안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian) | 찰스의 안드로이드

  • Article author: www.charlezz.com
  • Reviews from users: 46696 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian) | 찰스의 안드로이드 라플라스 연산자 라플라스 또는 라플라시안 연산자는 2차 미분 연산자의 일종으로, 기울기의 발산이다. 이전 포스팅에서 소벨 연산자에 대해 다룬적이 … …
  • Most searched keywords: Whether you are looking for [안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian) | 찰스의 안드로이드 라플라스 연산자 라플라스 또는 라플라시안 연산자는 2차 미분 연산자의 일종으로, 기울기의 발산이다. 이전 포스팅에서 소벨 연산자에 대해 다룬적이 … 라플라스 연산자 라플라스 또는 라플라시안 연산자는 2차 미분 연산자의 일종으로, 기울기의 발산이다. 이전 포스팅에서 소벨 연산자에 대해 다룬적이 있다. 엣지 부근에서 픽셀의 값이 뛰는 것을 확인할 수 있었다. 만약에 여기에 2차 미분을 취하면 어떻게 될까? 2차미분은 말 그대로 1차 미분값을 다시 한번 미분하는 방법을 말하는데, 2차미분의 장점은 엣지의 중심부분을 찾을 수 있다는 점이다. 2차 미분한
  • Table of Contents:
[안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian) | 찰스의 안드로이드
[안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian) | 찰스의 안드로이드

Read More

디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터

  • Article author: everyday-image-processing.tistory.com
  • Reviews from users: 42330 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터 디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터 · 픽셀 강도가 일정한 영역에서의 2차 미분은 0이다. · step이나 ramp … …
  • Most searched keywords: Whether you are looking for 디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터 디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터 · 픽셀 강도가 일정한 영역에서의 2차 미분은 0이다. · step이나 ramp …  안녕하세요. 지난 포스팅의 디지털 영상 처리 – 스무딩 공간 필터 구현에서 선형/비선형 스무딩 필터를 간단하게 구현해보고 테스트까지 해보았습니다. 스무딩 필터링은 결국 영상 블러링을 의미한다고 하였습니..
  • Table of Contents:

Everyday Image Processing

디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) 라플라시안 필터 본문

티스토리툴바

디지털 영상 처리 - 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터
디지털 영상 처리 – 샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터

Read More

파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)

  • Article author: marisara.tistory.com
  • Reviews from users: 2464 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian) 라플라시안과 LoG는 라플라시안 필터를 사용한다는 공통점, LoG와 DoG는 Gaussian블러와 관련되어있다는 공통점으로 묶여있어 한번에 강의해보자 … …
  • Most searched keywords: Whether you are looking for 파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian) 라플라시안과 LoG는 라플라시안 필터를 사용한다는 공통점, LoG와 DoG는 Gaussian블러와 관련되어있다는 공통점으로 묶여있어 한번에 강의해보자 … 파이썬 openCV 19번째 강의는 에지 검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)의 세 가지입니다. 라플라시안과 LoG는 라플라시안 필터를 사용한다는 공통점, LoG와..IT와 게임을 좋아하는 사람
  • Table of Contents:

파이썬 openCV 19 에지검출 라플라시안(Laplacian) LoG(Laplacian of Gaussian) DoG(Difference of Gaussian)

티스토리툴바

파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)
파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)

Read More

라플라시안 필터

  • Article author: www.koreascience.or.kr
  • Reviews from users: 36403 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 라플라시안 필터 따라서 본 논문에서는 신경망을 이용하여 얼굴 인식 과정을 수행하. 기 적합한 얼굴 표현 과정인 라플라시안 필터를 이용한 알고리즘을 제안한다. LBP와 신경망을 이용한. …
  • Most searched keywords: Whether you are looking for 라플라시안 필터 따라서 본 논문에서는 신경망을 이용하여 얼굴 인식 과정을 수행하. 기 적합한 얼굴 표현 과정인 라플라시안 필터를 이용한 알고리즘을 제안한다. LBP와 신경망을 이용한.
  • Table of Contents:
라플라시안 필터
라플라시안 필터

Read More

Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 – 1

  • Article author: thebook.io
  • Reviews from users: 23844 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 – 1 위 수식에서 ∇ 2 연산자가 이차 미분을 나타내는 연산자이며, 라플라시안 Laplacian … 그림 8-20은 라플라시안 필터 마스크를 적용한 결과 영상의 예를 보여준다. …
  • Most searched keywords: Whether you are looking for Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 – 1 위 수식에서 ∇ 2 연산자가 이차 미분을 나타내는 연산자이며, 라플라시안 Laplacian … 그림 8-20은 라플라시안 필터 마스크를 적용한 결과 영상의 예를 보여준다. 더북, TheBook, Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 – 1더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.
  • Table of Contents:
Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 - 1
Visual C++ 영상 처리 프로그래밍: 라플라시안을 이용한 언샤프 마스크 필터 구현 – 1

Read More

[Computer vision] 라플라시안 연산자 (Laplacian Operator)

  • Article author: 100s.tistory.com
  • Reviews from users: 45553 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Computer vision] 라플라시안 연산자 (Laplacian Operator) 위 수식은 마스크 형태로 나타낼 수 있으며, 이를 라플라시안 필터 마스크라고 한다. 왜 이차미분을 사용할까? 일차 미분 시, 외곽선(Edge) 부근 … …
  • Most searched keywords: Whether you are looking for [Computer vision] 라플라시안 연산자 (Laplacian Operator) 위 수식은 마스크 형태로 나타낼 수 있으며, 이를 라플라시안 필터 마스크라고 한다. 왜 이차미분을 사용할까? 일차 미분 시, 외곽선(Edge) 부근 … 영상 ⨍ 의 일차 미분 이산 함수 f(x, y)에서 x 방향으로의 일차 미분이다. 영상 ⨍ 의 이차편미분 이산 함수 ⨍(x, y)에서 x 방향으로의 이차 편미분이다. 편미분 : 함수의 변수가 2개 이상인 함수에서 변수 1개..
  • Table of Contents:
[Computer vision] 라플라시안 연산자 (Laplacian Operator) 본문

티스토리툴바

[Computer vision] 라플라시안 연산자 (Laplacian Operator)
[Computer vision] 라플라시안 연산자 (Laplacian Operator)

Read More

OpenCV – 18. 경계 검출 (미분 필터, 로버츠 교차 필터, 프리윗 필터, 소벨 필터, 샤르 필터, 라플라시안 필터, 캐니 엣지)

  • Article author: bkshin.tistory.com
  • Reviews from users: 13787 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about OpenCV – 18. 경계 검출 (미분 필터, 로버츠 교차 필터, 프리윗 필터, 소벨 필터, 샤르 필터, 라플라시안 필터, 캐니 엣지) 라플라시안 필터는 2차 미분을 적용한 필터입니다. 경계를 더 제대로 검출할 수 있습니다. … 확실히 경계가 뚜렷하네요. 캐니 엣지 (Canny Edge). 캐니 … …
  • Most searched keywords: Whether you are looking for OpenCV – 18. 경계 검출 (미분 필터, 로버츠 교차 필터, 프리윗 필터, 소벨 필터, 샤르 필터, 라플라시안 필터, 캐니 엣지) 라플라시안 필터는 2차 미분을 적용한 필터입니다. 경계를 더 제대로 검출할 수 있습니다. … 확실히 경계가 뚜렷하네요. 캐니 엣지 (Canny Edge). 캐니 … 이번 포스팅부터는 경계를 검출하는 방법에 대해 알아보겠습니다. 이번 포스팅 역시 ‘파이썬으로 만드는 OpenCV 프로젝트(이세우 저)’를 정리한 것임을 밝힙니다. 코드: github.com/BaekKyunShin/OpenCV_Project..
  • Table of Contents:

귀퉁이 서재

OpenCV – 18 경계 검출 (미분 필터 로버츠 교차 필터 프리윗 필터 소벨 필터 샤르 필터 라플라시안 필터 캐니 엣지) 본문

티스토리툴바

OpenCV - 18. 경계 검출 (미분 필터, 로버츠 교차 필터, 프리윗 필터, 소벨 필터, 샤르 필터, 라플라시안 필터, 캐니 엣지)
OpenCV – 18. 경계 검출 (미분 필터, 로버츠 교차 필터, 프리윗 필터, 소벨 필터, 샤르 필터, 라플라시안 필터, 캐니 엣지)

Read More

[영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking (윤곽선 추출 필터) [컴공과고씨]

  • Article author: hagisilecoding.tistory.com
  • Reviews from users: 5224 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking (윤곽선 추출 필터) [컴공과고씨] [영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking … 위 미분 법을 이용하여 라플라시안 필터를 만들어 줄 수 있다. …
  • Most searched keywords: Whether you are looking for [영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking (윤곽선 추출 필터) [컴공과고씨] [영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking … 위 미분 법을 이용하여 라플라시안 필터를 만들어 줄 수 있다. 오늘은 highpass spatial filters에 대해 볼것이다. highpass spatial filters는 고주파만 통과시키는 필터이다. 일단 이 필터에 대해 알아보기 위해서는 미분을 이용하는 것에 대해서 살펴봐야 이해를 할 수 있다..컴공과고씨입니다.
    백준, 컴퓨터 공부를 기록하는 학생 블로그입니다!
    잘못된 정보 훈수 OK 입니다!
  • Table of Contents:
[영상처리] Highpass Spatial Filters – Laplacian filter Unsharp Masking (윤곽선 추출 필터) [컴공과고씨]

티스토리툴바

[영상처리] Highpass Spatial Filters - Laplacian filter, Unsharp Masking (윤곽선 추출 필터) [컴공과고씨]
[영상처리] Highpass Spatial Filters – Laplacian filter, Unsharp Masking (윤곽선 추출 필터) [컴공과고씨]

Read More

라플라시안 필터

  • Article author: www.kais99.org
  • Reviews from users: 42179 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 라플라시안 필터 밝기 성분에 대해서 가속화된 국소 라플라시안 필터를 적용. 하여 에지를 보존하면서 시각적 왜곡을 최소화한다. 이때 원. 영상보다 어둡게 복원되는 영역에 대해 보정 … …
  • Most searched keywords: Whether you are looking for 라플라시안 필터 밝기 성분에 대해서 가속화된 국소 라플라시안 필터를 적용. 하여 에지를 보존하면서 시각적 왜곡을 최소화한다. 이때 원. 영상보다 어둡게 복원되는 영역에 대해 보정 …
  • Table of Contents:
라플라시안 필터
라플라시안 필터

Read More


See more articles in the same category here: https://chewathai27.com/to/blog.

[안드로이드로 배우는 OpenCV] 라플라시안 필터(Laplacian)

라플라스 연산자

라플라스 또는 라플라시안 연산자는 2차 미분 연산자의 일종으로, 기울기의 발산이다.

이전 포스팅에서 소벨 연산자에 대해 다룬적이 있다. 엣지 부근에서 픽셀의 값이 뛰는 것을 확인할 수 있었다.

만약에 여기에 2차 미분을 취하면 어떻게 될까?

2차미분은 말 그대로 1차 미분값을 다시 한번 미분하는 방법을 말하는데, 2차미분의 장점은 엣지의 중심부분을 찾을 수 있다는 점이다. 2차 미분한 그래프를 보면 엣지부분이 0으로 부호가 바뀌게 되는 것을 확인할 수 있다. 이를 변곡점 또는 영교차(zero crossing)라고 한다. 이 기준을 사용하여 이미지의 엣지를 검출할 수 있다. 이 때, 라플라시안 연산을 사용할 수 있다.

라플라시안 방정식은 다음과 같다.

이 수식을 조금 더 펼쳐서 전개해보자면 다음과 같다.

OpenCV에서 제공하는 라플라시안 함수는 다음과 같다.

Imgproc.Laplacian (Mat src , Mat dst , int ddepth , int ksize)

src : 입력 영상 dst : 결과 영상 ddepth : 출력영상 데이터 타입, -1이면 입력 영상과 같은 데이터 타입 사용.

라플라시안 함수는 미분의 차수가 필요하지 않다는 점을 제외하고는 소벨 함수와 동일한 파라미터를 취한다. 커널에 대한 ksize는 소벨 미분의 커널과 정확하게 같으며, 사실상 그 픽셀이 2차 미분의 계산을 위해 샘플링하는 영역의 크기를 정한다. 실제로 라플라시안 에서 이미지의 기울기를 사용하기 때문에 내부적으로는 소벨 함수를 호출하여 계산을 수행한다.

레나 이미지를 Grayscale로 변경하고 라플라시안 필터를 적용한 결과는 다음과 같다.

샤프닝 공간 필터(Sharpening Spatial Filter) : 라플라시안 필터

728×90

반응형

안녕하세요. 지난 포스팅의 디지털 영상 처리 – 스무딩 공간 필터 구현에서 선형/비선형 스무딩 필터를 간단하게 구현해보고 테스트까지 해보았습니다. 스무딩 필터링은 결국 영상 블러링을 의미한다고 하였습니다. 그렇다면 이와는 반대로 영상이 좀 더 뚜렷하게 보이게 만드는 방법은 없을까요? 오늘 소개할 샤프닝 공간 필터를 이용하면 충분히 가능합니다.

샤프닝 공간 필터의 기본 원리는 영상 내의 픽셀 강도의 변화를 강조하는 것입니다. 그렇다면 영상 내에 픽셀 강도의 변화가 가장 큰 곳은 어디일까요? 바로 엣지입니다. 샤프닝 공간 필터를 엣지를 강조하여 사람이 보았을 때 좀 더 뚜렷하게 보이는 것처럼 만들어주는 방법입니다. 따라서 저희는 이제부터 엣지(edge)를 얻어내는 방법이 필요합니다. 이를 위해서는 미분이 필요하기 때문에 디지털 영상에서 미분이 정의될 수 있도록 몇 가지 가정부터 하도록 하겠습니다.

먼저, 디지털 영상에서 1차 미분(first derivative)은 아래의 3가지 조건을 만족해야합니다.

픽셀 강도가 일정한 영역에서의 1차 미분은 0이다. 픽셀 강도가 변화하는 지점(step, ramp)에서의 1차 미분은 0이 아니다. 모든 ramp 구간에서의 1차 미분은 항상 0이 아니다.

여기서 나온 ramp와 step은 디지털 영상에서 2차 미분(second derivative)의 조건을 명시한 후 설명하도록 하겠습니다. 아직은 간단하게 영상 내에 픽셀 강도가 변하는 구간이라고 생각하시면 됩니다. 2차 미분 역시 1차 미분과 마찬가지로 아래의 3가지 조건을 만족해야 합니다.

픽셀 강도가 일정한 영역에서의 2차 미분은 0이다. step이나 ramp의 시작과 끝 지점에서의 2차 미분은 0이 아니다. ramp 구간이 constant slope를 가지고 픽셀 강도가 변화한다면 그 구간의 2차 미분은 0이다.

위와 같은 조건을 두고 1차 미분과 2차 미분을 어떤 이산값을 가지는 1차원 함수 $f$에 대해서 정의하면 아래와 같습니다. 이러한 수식을 유도하는 수치적 기법이 있으나 이 부분은 과감하게 생략하고 이와 같이 정의하면 1차 미분, 2차 미분의 조건이 전부 성립한다는 것으로 받아들이시면 됩니다.

$\frac{\partial f}{\partial x} = f(x + 1) – f(x)$

$\frac{\partial^{2} f}{\partial x^{2}} = f(x + 1) + f(x – 1) – 2f(x)$

일단, 실제 쉬운 예제를 통해서 미분을 진행해보도록 하겠습니다. 상단의 그림을 참고해주세요. 미분 조건을 말씀드렸을 때 ramp와 step에 대해서 말씀드렸습니다. step은 영상 내에서 $x$ 축에서 한 칸만 움직여도 굉장히 큰 변화가 생기는 지점을 의미합니다. 그리고 ramp는 step과는 다르게 비교적 완만한 변화를 가지는 구간을 의미합니다.

위와 같은 데이터가 주어져있을 때 1차 미분을 진행해보도록 하겠습니다. 일단 $x = 0$부터 해볼까요? 저희가 정의한 수식을 사용하면 $\frac{\partial f}{\partial x} |_{x=0} = f(1) – f(0) = 6 – 6 = 0$입니다. 즉, $x = 0$에서는 데이터에 어떠한 변화도 없음을 알 수 있습니다. 물론 이렇게 일일이 계산할 수도 있지만 저희는 1차 미분의 첫 번째 조건을 활용하면 $x = 0, 1, 2$에서의 값은 일정하기 때문에 1차 미분의 결과가 0이 나올 것입니다(실제로 계산해봐도 0이 나옵니다!). 또한 일정한 구간인 $x = 8, 9, 19, 11, 12$, 그리고 $x = 14, 15, 16, 17$에서도 1차 미분은 0입니다. 아주 간단하죠? 다음으로는 변화가 시작되는 지점을 보도록 하겠습니다. $x = 3$에서의 1차 미분은 $\frac{\partial f}{\partial x} |_{x=3} = f(4) – f(3) = 5 – 6 = -1$로 -1만큼 변화하였음을 볼 수 있습니다. 또한 $x = 4, 5, 6, 7$에서도 마찬가지로 -1만큼의 변화를 하고 있죠. 다음으로는 step 지점 $x = 13$에서의 1차 미분은 $\frac{\partial f}{\partial x} |_{x=13} = f(14) – f(13) = 6 – 1 = 5$로 +5만큼의 큰 변화가 있음을 볼 수 있습니다. 2차 미분도 동일하게 하면 저희는 아래와 같은 표를 얻을 수 있습니다.

2차 미분은 1차 미분과는 다르게 앞-뒤 데이만 보는 것이 아니라 현재 데이터와 이전 데이터, 이후 데이터의 정보를 함께 사용하기 때문에 결과가 달라집니다. 일정한 값의 구간에서는 동일하게 0이지만, 2차 미분에서는 ramp 구간의 시작 지점, 끝 지점만 미분이 0이 아니고 내부 구간은 일정하게 변화하게 때문에 0이 됩니다. 또한 step 지점에서도 step이 시작되는 $x = 13$, 그리고 step이 끝나는 $x = 14$에서만 미분 값이 0이 아님을 볼 수 있습니다.

1차 미분과 2차 미분의 결과를 그래프로 그려보면 상단의 그림과 같습니다. 2차 미분의 경우에는 급격하게 값이 변화하는 step 지점에서 미분값이 +5에서 -5로 변화하면서 0을 지나게 됩니다. 이 현상을 “zero crossing”이라고 부르게 됩니다. 이게 왜 중요한 지는 다시 한번 저희의 목표를 생각해보시면 됩니다. 저희는 영상 샤프닝을 위해서 엣지를 찾고자 하였습니다. 그런데 엣지의 가장 중요한 특성은 굉장히 가파른 픽셀 강도 변화를 보이고 있죠. 따라서 디지털 영상 전체에 2차 미분을 적용한 뒤 zero crossing이 발생하는 지점을 찾으면 엣지를 찾을 수 있을 것입니다. 실제로 이러한 방법을 사용해서 영상 샤프닝을 수행하니 꼭 기억해주시길 바랍니다.

영상 내에서 엣지를 찾는 필터는 크게 2가지가 존재합니다. 각각 등방성(isotrophic), 비등방성(anisotrophic) 필터입니다. 등방성 필터는 회전 불변성(rotation invariant)를 가지는 필터로써 중앙을 중심으로 어떤 각도로 회전시켜도 동일한 필터가 유지되는 특성을 가지고 있습니다. 비등방성 필터는 회전 불변성을 가지고 있지 않아 회전 시 동일한 필터가 아닙니다. 이때, 가장 대표적인 등방성 필터가 바로 라플라시안(Laplacian) 필터입니다.

대학교 공대나 자연대를 나오신 분들은 라플라시안에 대해서 익히 들어보셨을 겁니다. 바로 2차 미분을 다르게 말한 것입니다. 그런데 2차 미분의 개념을 처음 알려드렸을 때는 1차원에서 정의가 되었지만 저희는 이제 2차원 데이터인 디지털 영상을 다루기 위해서 라플라시안을 사용하게 됩니다. 이를 수식으로 표현하면 아래와 같습니다.

$$\Delta f =

abla^{2}f = \frac{\partial^{2} f}{\partial x^{2}} + \frac{\partial^{2} f}{\partial y^{2}}$$

하지만 저희는 이산 데이틀 다루기 때문에 이에 맞게 변형시켜야 합니다. 먼저, $\frac{\partial^{2} f}{\partial x^{2}}$과 $\frac{\partial^{2} f}{\partial y^{2}}$부터 바꾸면 아래와 같습니다.

$$\frac{\partial^{2} f}{\partial x^{2}} = f(x+1, y) + f(x-1, y) – 2f(x, y)$$

$$\frac{\partial^{2} f}{\partial y^{2}} = f(x, y+1) + f(x, y-1) – 2f(x, y)$$

그 다음으로 두 결과를 하나로 합치면 됩니다.

$$\Delta f = f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) – 4f(x, y)$$

수식을 자세히보면 $(x, y)$를 지점으로 4-이웃 픽셀들을 고려하여 계산하게 됩니다. 그래서 이를 하나의 커널로 표현하면 저희는 아래의 결과를 얻을 수 있습니다.

가장 기본적인 라플라시안 필터는 (a)이지만 8-이웃을 고려하여 (b)와 같이 쓰는 경우도 있으며 중앙 가중치와 이웃 가중치의 부호를 바꾸어서 (c), (d)와 같이 사용하는 경우도 있습니다. 어떤 것을 쓸지는 엣지가 잘 추출되는 것으로 사용하면 되겠죠? 이제 라플라시안 필터를 사용하여 엣지를 얻었다고 가정하면 그 엣지를 그냥 입력 영상에 그대로 더하면 끝입니다. 하지만 상단의 커널 중 (a), (b)를 쓰면 그냥 더하면 되지만 (c), (d)를 쓰는 경우에는 빼주어야 합니다. 샤프닝된 영상을 $g(x, y)$라고 했을 때, 이를 표현하면 아래와 같습니다.

$$g(x, y) = f(x, y) + c\left[\Delta f(x, y)\right]$$

이때, (a)나 (b) 커널을 쓰면 $c = 1$을 쓰면 (c)나 (d) 커널을 쓰면 $c = -1$을 사용하면 됩니다. 이제 실제 결과를 보도록 하겠습니다.

먼저, 왼쪽으로 입력 영상일 때, 여기에 라플라시안 커널 (a)을 적용하면 오른쪽의 엣지 영상을 얻을 수 있습니다. 이제 오른쪽 영상을 왼쪽 영상에 $c = 1$로 해서 더하면 되겠죠? 그러면 아래의 결과를 얻을 수 있습니다.

왼쪽 영상은 (a) 커널을 사용한 결과이고 오른쪽 영상은 (b) 커널을 사용하면 얻을 수 있습니다. 눈으로 보았을 때는 (b) 커널을 사용했을 때 조금 더 샤프닝된 결과를 얻을 수 있습니다. 참고로 (b) 커널을 사용한 엣지 영상은 아래와 같습니다.

728×90

반응형

파이썬 openCV 19. 에지검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)

반응형

파이썬 openCV 19번째 강의는 에지 검출 : 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)의 세 가지입니다. 라플라시안과 LoG는 라플라시안 필터를 사용한다는 공통점, LoG와 DoG는 Gaussian블러와 관련되어있다는 공통점으로 묶여있어 한번에 강의해보자 합니다.

0. 라플라시안(Laplacian), 가우시안(Gaussian)?

이번 강의에서 핵심적인 단어는 라플라시안과 가우시안입니다. 가우시안은 예전 가우시안 필터 강의에서 언급한 적이 있습니다.

2020/11/22 – [파이썬/openCV] – 파이썬 openCV 10. 가우시안 노이즈(Gaussian Noise)

라플라시안 역시 가우시안과 마찬가지로 라플라스 연산을 적용한 필터라서 라플라시안 기법입니다.

가우스 연산자 라플라스 연산자

실제 프로그램이 위와 같은 공식을 적용하여 화소를 연산하지는 않습니다. 다만 라플라시안 필터도 원래는 위와 같은 공식을 통해 유도할 수 있다고만 알아두시면 될 것 같습니다.

에지 유형

라플라스 연산자는 2차 미분을 할 때 필요한 연산자입니다. 저번 강의에서 사용했던 로버츠, 프리윗, 소벨은 1차 미분으로, 에지 유형에서 기울기에 따라 에지가 결정되었습니다. 하지만 라플라시안 필터는 2차 미분, 즉 기울기의 기울기 값으로, 조금 더 정확한 에지를 검출하기 위해 사용됩니다.

1. openCV에서의 라플라시안(Laplacian), LoG(Laplacian of Gaussian), DoG(Difference of Gaussian)

이제 각각의 코드를 확인해 보겠습니다.

img = cv2.imread(‘lenna.png’) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) height, width = gray.shape

우선 에지 검출의 공통적인 부분을 입력해줍니다

mask1 = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]]) mask2 = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]]) mask3 = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])

라플라시안 필터를 적용하기 위한 마스크를 생성해 줍니다.

라플라시안 마스크의 대표적인 3가지

위 마스크들은 모두 라플라스 연산자에서 도출하는 필터입니다. 따라서 저 필터를 적용하는 것으로 라플라스 연산자를 이용하는 것과 같은 효과를 얻을 수 있습니다.

laplacian1 = cv2.filter2D(gray, -1, mask1) laplacian2 = cv2.filter2D(gray, -1, mask2) laplacian3 = cv2.filter2D(gray, -1, mask3) laplacian4 = cv2.Laplacian(gray, -1)

이제 각각의 라플라시안 필터를 적용해 줍니다. 마지막의 Laplacian함수는 위 필터의 함수화 버전입니다. 이때 필터를 따로 지정해주지 않으면(Laplacian함수의 3번째 인수) 자동으로 라플라시안 1번 필터(-1과 4가 있는 필터)를 사용합니다.

이제 라플라시안 필터를 확인해 보겠습니다. 이때 함수 타입을 실수로 지정해주어야 합니다.

원본 영상 라플라시안 필터 1 라플라시안 필터 2 라플라시안 필터 3 라플라시안 함수 적용

각각의 필터 모두 에지가 잘 검출된 것을 확인할 수 있습니다.

이번에는 LoG입니다.

LoG는 Laplacian of Gaussian인 만큼, 가우시안을 적용하고 라플라시안을 사용하는 필터입니다. 이때 가우시안은 예전에 배웠던 가우시안 노이즈가 아닌, 가우시안 블러를 의미합니다.

gaussian = cv2.GaussianBlur(gray, (5, 5), 0) LoG = cv2.filter2D(gaussian, -1, mask3)

가우시안 블러는 GaussianBlur함수를 통해 적용합니다. 이때 각각의 인수는 (적용할 이미지, 필터 크기, 알파 값)이며, 이때 알파 값이 커지면 커질수록 블러링이 강하게 적용됩니다.

이제 LoG를 확인해 보겠습니다.

원본 영상 가우시안 블러 영상 LoG 영상

LoG는 일반적인 라플라시안 기법과 다르게 더 굵은 에지를 확인할 수 있습니다.

DoG는 Difference of Gaussian의 이름처럼 가우시안 블러를 적용한 이미지의 차입니다. 이때 차이로 가장 적합한 값은 두 알파 값의 비가 1.6 : 1입니다.

gaussian1 = cv2.GaussianBlur(gray, (5, 5), 1.6) gaussian2 = cv2.GaussianBlur(gray, (5, 5), 1) DoG = np.zeros_like(gray) for i in range(height): for j in range(width): DoG[i][j] = float(gaussian1[i][j]) – float(gaussian2[i][j])

가우시안 1과 가우시안 2의 알파 값의 비를 1.6 : 1로 설정하고, 각각의 화소의 차이를 출력할 배열에 넣어줍니다. 이때 굳이 실수 값으로 넣을 필요는 없으나, 실수값으로 넣어주어야 오버플로우를 방지할 수 있습니다.

이제 결과를 확인해보겠습니다.

원본 영상 가우시안 1 가우시안 2 DoG

DoG는 LoG와 비슷한 결과가 나오는 것을 확인할 수 있습니다.

2. 마치며

LoG와 DoG는 한국 웹사이트에서는 찾아보기 힘들었습니다. 그래서 외국 쪽 사이트인 stack overflow나 openCV공식 문서에서 배우시는 분들이 많으실 겁니다. 이번 강의로 다른 분들도 쉽게 LoG와 DoG를 공부하실 수 있으면 좋겠습니다.

def laplacian(): img = cv2.imread(‘lenna.png’) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) height, width = gray.shape mask1 = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]]) mask2 = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]]) mask3 = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]]) laplacian1 = cv2.filter2D(gray, -1, mask1) laplacian2 = cv2.filter2D(gray, -1, mask2) laplacian3 = cv2.filter2D(gray, -1, mask3) laplacian4 = cv2.Laplacian(gray, -1) gaussian = cv2.GaussianBlur(gray, (5, 5), 0) LoG = cv2.filter2D(gaussian, -1, mask3) gaussian1 = cv2.GaussianBlur(gray, (5, 5), 1.6) gaussian2 = cv2.GaussianBlur(gray, (5, 5), 1) DoG = np.zeros_like(gray) for i in range(height): for j in range(width): DoG[i][j] = float(gaussian1[i][j]) – float(gaussian2[i][j]) cv2.imshow(‘original’, gray) cv2.imshow(‘laplacian1’, laplacian1.astype(np.float)) cv2.imshow(‘laplacian2’, laplacian2.astype(np.float)) cv2.imshow(‘laplacian3’, laplacian3.astype(np.float)) cv2.imshow(‘laplacian4’, laplacian3.astype(np.float)) cv2.imshow(‘gaussian’, gaussian) cv2.imshow(‘LoG’, LoG.astype(np.float)) cv2.imshow(‘gaussian1’, gaussian1) cv2.imshow(‘gaussian2’, gaussian2) cv2.imshow(‘DoG’, DoG) cv2.waitKey(0)

반응형

So you have finished reading the 라플라시안 필터 topic article, if you find this article useful, please share it. Thank you very much. See more: 라플라시안 필터 C++, 라플라시안 필터 파이썬, 라플라시안 연산자, 벡터 라플라시안, 매트랩 라플라시안 필터, 라플라시안 행렬, 라플라시안 계산, LoG 필터

Leave a Comment