| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Pointer
- Read
- SERIAL
- Filtering
- mfc
- parameter
- APP
- aduino
- file access
- edge
- atmega328
- Binary
- Gaussian
- Gradient
- subpixel
- memory
- UNO
- stream
- Class
- digitalRead
- flutter
- Contour
- wpf
- Encapusulation
- c++
- sensor
- Android
- public
- compare
- Unity
- Today
- Total
목록subpixel (16)
폴크(FOLC)
Wavelet Denoising은 신호의 주파수와 시간 정보를 동시에 고려하여 노이즈를 제거하는 고급 기법- 특히 경계(에지)를 보존하면서 노이즈를 억제하는 데 효과적이며, 의료 신호, 이미지, 음향 신호, 과학 데이터 등에 널리 사용됩니다.Wavelet Denoising은 다음 세 단계로 수행됩니다:1 단계 : Wavelet Transform: 입력 신호를 다중 해상도(다양한 주파수)로 분해.2 단계 : Thresholding: 노이즈가 주로 포함된 세부 계수(detail coefficients)에 임계값을 적용해 제거.3 단계 : Inverse Transform: 노이즈가 제거된 계수를 기반으로 신호를 복원.1D Soft Thresholding: 예제#include #include #include..
Elliptic 필터(= Cauer filter)는 가장 급격한 주파수 전이 특성을 가지는 IIR 필터입니다. 동일한 필터 스펙(통과대역, 저지대역, ripple, 차단 감쇠)을 만족시키는 필터 중 **가장 낮은 차수(order)**로 구현 가능- 실시간 DSP, 고정밀 신호 처리, 자원 제약 환경 등에 매우 유리합니다. Elliptic Filter란?통과대역과 저지대역 모두에 ripple이 존재.**Elliptic 함수 (Jacobian elliptic function)**을 이용해 설계.Butterworth, Chebyshev보다 더 적은 차수로 동일 성능 구현 가능.설계 파라미터요소설명Order (차수)필터의 sharpness 및 정확도 결정Passband ripple (rpr_prp)통과대역에서..
Chebyshev 필터는 클래식 IIR 필터 설계법 중 하나로, 주어진 사양(통과대역 ripple, 차단대역 감쇠, 전이대역 너비)을 만족시키면서 빠른 롤오프(roll-off)를 제공하는 고성능 필터- 특히 Butterworth 필터보다 짧은 전이대역을 갖지만, **통과대역 또는 저지대역에 ripple(잔류진동)**을 허용합니다. Chebyshev 필터- Chebyshev Type I (1형)통과대역에 ripple, 저지대역은 단조롭게 감쇠.롤오프가 Butterworth보다 빠름.- Chebyshev Type II (2형)저지대역에 ripple, 통과대역은 평탄함.Type I보다 덜 사용됨 (주로 특수 목적). 주파수 응답 (Type I) Tn : n차 Chebyshev 다항식ωc : 컷오프 주파수ϵ..
Butterworth Filter매끄럽고 평탄한 주파수 응답 (통과대역에서 ripple이 없음).필터 차수가 증가할수록 롤오프가 더 급격해짐.특징응답이 가장 "부드러운" 필터급격한 에지 응답은 부족하지만 안정적주파수 응답 (저역통과 기준) 예제#include #include class ButterworthLPF { public: ButterworthLPF(double sampleRate, double cutoffFreq) { double fr = cutoffFreq / sampleRate; double ita = 1.0 / std::tan(M_PI * fr); double q = std::sqrt(2.0); // Q factor for 2nd-or..
Band-pass Filter (대역통과 필터)특정 주파수 범위만 통과시키고, 그 이외의 저주파와 고주파는 차단합니다.예: 515Hz만 통과 → 05Hz, 15Hz~ 이상은 제거용도특정 이벤트나 센서가 생성하는 주파수만 추출하고 싶을 때잡음이 저역 또는 고역에 집중되어 있을 때 Notch Filter (대역저지 필터)특정 좁은 주파수 대역만 제거하고 나머지는 통과시킵니다.예: 60Hz 전력 노이즈 제거 (Line frequency)용도주기적이고 명확한 간섭 신호(기계 진동, 전력 간섭 등) 제거신호 구조를 최대한 유지하면서 잡음만 제거하고자 할 때 예제#include #include #include const double PI = 3.14159265358979323846; // 간단한 IIR 2차 ..
Wiener Filter- 노이즈를 억제하면서 신호를 왜곡 없이 보존하는 것이 목표.- 선형 필터 중 평균 제곱 오차(Mean Square Error, MSE)를 최소화함.동작 방식- 입력 x[n]=s[n]+n[n] (신호 + 잡음)- 출력 y[n]는 다음 조건을 만족하도록 설계:- 주파수 영역에서의 형태 (1D 버전):S(f) : 신호 파워 스펙트럼N(f) : 노이즈 파워 스펙트럼 간단한 1D Wiener Filter 구현 로직핵심 공식 (시간영역 근사)μ : 로컬 윈도우 평균σ2 : 로컬 신호 분산ν2 : 노이즈 추정 분산 (전역 평균 또는 사전 정보) 예제#include #include #include #include #include // 평균 계산 함수 double mean(const s..
윈도우 내 값들을 오름차순 정렬.특정 순위(rank) 또는 백분위(percentile)에 해당하는 값을 반환.- Percentile filter: 0~100 중 하나의 백분위값 (e.g., 20%)- Rank filter: 윈도우 내 인덱스로 직접 지정 (e.g., 3번째 작은 값)입력: [8, 3, 4, 2, 10], 커널 size = 5정렬: [2, 3, 4, 8, 10]20% percentile → 1번째 값 → 350% percentile → 중앙값 → 480% percentile → 4번째 값 → 8 Median보다 더 다양한 filtering 특성이 가능특정 방향성 있는 노이즈 억제 가능 (e.g. 아래쪽 스파이크 제거) 예제#include #include #include #include..
Savitzky-Golay 필터는 신호 처리에서 널리 사용되는 데이터 평활화 기법으로, 특히 노이즈를 줄이면서 신호의 주요 특성(예: 피크, 경향선 등)을 보존해야 할 때 효과적입니다.이동 윈도우 내의 다항 회귀를 통해 중심값을 재계산하여 평활화하는 방법입니다. 보통 단순 이동 평균은 신호를 과도하게 평탄화하여 중요한 피크나 변화를 손실할 수 있는데, 이 필터는 신호의 형상 보존에 강점이 있습니다.원리- 주어진 윈도우 크기와 다항 차수를 바탕으로, 해당 구간의 데이터를 최소자승법(Least Squares) 으로 다항식에 맞추고 중심값을 계산합니다.- 이는 선형 컨볼루션처럼 미리 계산된 계수를 사용하여 구현할 수 있습니다.파라미터- window size (odd integer): 적용할 데이터 포인트의 개..
Knife-edge Method (Gaussian Profile Estimation) 은 광학 시스템의 Point Spread Function(PSF)을 정량적으로 평가하는 데 사용되는 대표적인 간접 측정 방법 중 하나입니다. 여기서 PSF는 시스템이 한 점 광원을 어떻게 퍼뜨리는지를 나타내는 함수이며, 이는 시스템의 해상도와 직결됩니다.기본 원리- Knife-edge method는 광원이 일정한 에너지를 가진 빔(보통 Gaussian 분포를 가짐)을 생성할 때, 그 빔의 일부를 knife(날카로운 가장자리, 예: 블레이드)로 차단하고, detector(카메라, 포토다이오드 등)로 전달되는 빛의 세기를 측정하는 방식입니다.- 측정된 신호는 광원의 **적분된 intensity profile (Edge Sp..
Phase-Based Edge Detection이미지의 edge는 일반적으로 위상(phase)의 급격한 변화에서 발생합니다. 특히 Fourier나 Hilbert Transform을 통해 구한 위상 정보를 분석하면 에지 위치를 subpixel 정밀도로 파악할 수 있습니다.Fourier Transform 기반 방식- 이미지를 주파수 영역으로 변환 (FFT)- 특정 방향의 주파수 성분을 필터링- 위상 정보 추출- 위상 변화가 급격한 부분을 에지로 판단Hilbert Transform 기반 방식 - Hilbert Transform은 1D 시그널에서 즉각적인 위상(instantaneous phase) 추정에 사용됩니다. - 이미지를 방향성 필터와 함께 처리하여 각 방향의 위상 응답을 얻고 에지를 검출합니다. Hil..
Gaussian Smoothing노이즈를 제거하여 edge 검출의 안정성을 향상시키기 위한 가우시안 필터 적용.1차 미분 (1st Derivative)프로파일의 기울기를 계산하여 edge 후보 위치를 검출.Zero-Crossing 위치 검출1차 미분 결과가 양→음 또는 음→양으로 바뀌는 지점을 zero-crossing으로 판단.Subpixel Interpolation Zero-crossing 근처의 값을 가지고 2차 (Quadratic) 보간을 통해 subpixel 수준의 edge 위치를 계산. 예제#include #include #include // Gaussian smoothing (1D) std::vector gaussianSmooth(const std::vector& input, double..
1D 신호에서 자동 CD 측정을 위한 최적 점수 조합 기반 알고리즘- Gradient Magnitude (강도)- Sharpness (2차 도함수 기반 집중도)- Noise Contrast Ratio (SNR 기반 신뢰도)- Pair Symmetry (± gradient 쌍의 균형)이를 바탕으로 가장 신뢰도 높은 edge 쌍을 찾아 subpixel 정밀도로 CD를 측정한다. 요약이미지 로딩 → 선택 row 프로파일 추출 → 1D gradient 및 score 계산 → subpixel edge 위치 보간 + 점수 평가 → 양/음 edge 쌍 찾기 → 점수 높은 쌍 선택 → CD 계산 및 출력 예제#include #include #include #include #include using namesp..
1D gradient 기반 edge 검출에 이어, parabola 보간을 이용한 subpixel 정밀도 위치 추정, 그리고 gradient 방향(양/음)을 통한 edge 방향성 분석까지 포함하는 정밀한 CD 측정 알고리즘 예제#include #include using namespace std; using namespace cv; enum class EdgeDirection { POSITIVE, NEGATIVE }; struct EdgePoint { float position; // subpixel 위치 EdgeDirection direction; // gradient 방향 }; // 파라볼라 보간으로 subpixel 위치 추정 float parabolaSu..
CD 측정 같은 선형 구조 분석에는 오히려 1D 프로파일 기반 edge 추출이 정확하고 제어 가능하며, subpixel 정밀도를 높일 수 있다.1D based edge detection - 한 줄의 intensity profile에서 경계점을 찾는 방식 (예: 특정 row 또는 column)- Subpixel 보간, 잡음 억제 용이, 정밀도 향상, 구조 선형성 이용 가능 - Line & Space 구조, mask/wafer CD 측정, 전자현미경 이미지 등 예제#include #include using namespace cv; using namespace std; // 1D derivative 계산 후 subpixel 보간으로 edge 위치 추정 vector findEdges1DWithSubpixe..
Edge line 전체에 대해 Least-Squares Line Fitting을 수행하면, 단순히 픽셀마다 edge를 추정하는 것이 아니라, 전체 edge 점들을 직선 또는 곡선으로 모델링하여 더 안정적이고 subpixel 수준의 CD(임계 치수) 측정이 가능하다.개념- 입력 : edge image / binary edge mask image- 처리 : edge point detect -> line fitting model : ax + by + c = 0- 출력 : line to line distance, line equation of each line #include #include using namespace std; using namespace cv; // 직선 피팅 함수 (OpenCV fitL..
Sub-pixel Edge Detection 기반의 고정밀 CD측정은 pixel-level 경계 검출의 한계를 넘어, 곡선 보간, Edge fitting, 또는 gradient interpolation 등을 이용하여 실제 구조의 경계선을 소수점 단위까지 정밀하게 추정하는 방법이다원리- Edge 검출: Sobel 또는 Canny로 초기 edge map 생성- Gradient interpolation: 엣지 픽셀 주변에서 1차 또는 2차 곡선을 피팅하여 정확한 edge 위치를 소수점 단위로 추정- Edge pair 매칭: 좌/우 또는 위/아래 edge 쌍을 찾아 거리 계산- 실측 크기 변환 (선택): pixel 단위를 μm 등으로 변환 예제#include #include using namespace cv..