본문 바로가기

Computer Science/영상처리7

(C/C++) Histogram 1. Image Histogram Pixel 강도 분포의 그래프 표현으로, 각 강도에 대한 픽셀 수이다. 이미지 분석, 이미지 향상과 같은 다양한 목적으로 쓰인다. void histogram(void) { int I,x,y,n; /* 변수와 배열 선언 */ char Subf[300]; for(int i = 0; i < SIZE; i++) hist[i] = LOW; /* initialize 초기화 */ for(int y = 0 ; y < SIZE ; y++) { fread(Subf, 1, SIZE, in); /* read image data line by line 영상을 한줄씩 읽는다 */ for(int x = 0 ; x < SIZE ; x++) { hist[Subf[x]]++; /* compute den.. 2024. 4. 2.
(C/C++) Filter (Denoising) 1. Noise Generation Y += rand() % Err - (Err >> 1); 2. Salt-and-Pepper Noise if ((rand() % prob) == 0) Y = 255; else if ((rand() % prob) == 1) Y = 0; else Y = Y; 3. Image Restoration Noise를 줄이기 위한 이미지 전처리(Denoising) 손상된 이미지에서 고품질 이미지를 얻는 작업 4. Median Filter 사전정의된 window 내 모든 pixel의 중앙값 제공 Salt-and-pepper noise에 효과적 5. Mean Filter 사전정의된 window 내 모든 pixel의 평균값 제공 노이즈 감소 및 평활화 // Filter int f_size .. 2024. 4. 1.
(C/C++) Quality Evaluation(PSNR) 1. Subjective Quality 2. Objective Quality 이미지 퀄리티에 대한 객관적인 측정 지표 필요 Peak Signal-to-Noise Ratio, PSNR $MSE = \frac{\sum_{j=1, i=1}^{j=h, i=w}(Original - Output)^2}{h \times w} $ $MAX = 2^{bit - depth} - 1$ $PSNR = 10\cdot log_{10} \left ( \frac{MAX^2}{MSE} \right ) $ double mse = 0, psnr; for(int j=0; j 2024. 3. 27.
(C/C++) Pixel Operation 1. Substraction(Difference) 이미지 차이/오류 확인 $ MSE(Mean Squared Error) = \frac{(Original - Output)^{2}}{Pixels} $ Diff_Y = (inputImg1[j * stride + 3 * i + 2] - inputImg2[j * stride + 3 * i + 2]) * (inputImg1[j * stride + 3 * i + 2] - ipnutImg2[j * stride + 3 * i + 2]) 2. Addition(Embedding) 워터마크와 유사 Y1 = 0.299 * inputImg1[j * stride + 3 * i + 2] + 0.587 * inputImg1[j * stride + 3 * i + 1] + 0.114 * .. 2024. 3. 27.