일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Artificial Intelligence
- MongoDB
- 몽고디비
- 통계
- 빅데이타
- 인공지능
- 딥러닝
- 빅데이터
- probability
- 김양재
- 김양재 목사
- openCV
- R
- 김양재 목사님
- nodeJS
- WebGL
- 빅 데이터
- data science
- 데이터 과학
- Machine Learning
- 주일설교
- 우리들교회
- node.js
- Big Data
- 빅 데이타
- Statistics
- No SQL
- c++
- Deep learning
- 확률
- Today
- Total
Scientific Computing & Data Science
[Image Processing] 히스토그램 평활화 본문
[Step 1]
명암 값 j의 빈도 수 hist[j]를 계산하여 입력 영상의 히스토그램을 작성한다.
[Step 2]
각 명암 값 i에서 0~i까지의 누적 빈도 수(누적합)를 계산한다.
[Step 3]
2단계에서 구한 누적 빈도 수를 정규화한다(정규화 누적합).
n[i] = sum[i] * Imax / N
N: 화소의 총수
Imax: 최대 명도 값
[MATLAB CODE]
function Hist %% read an image img = imread('.\res\vectorc.jpg'); img = rgb2gray(img); [nrow, ncol] = size(img); subplot(1,2,1); imshow(img); %% vectorize img to tmp tmp = []; for(i = 1:nrow) tmp = [tmp img(i,:)]; end tmp = cast(tmp,'double'); %% histogram histo = zeros(256,1); MIN = 0; MAX = 0; for(i = 1:length(tmp)) histo(tmp(i)+1) = histo(tmp(i)+1) + 1; if(MIN > tmp(i)) MIN = tmp(i); end if(MAX < tmp(i)) MAX = tmp(i); end end %% accumulation of frequency dummy = 0; freq = zeros(length(histo),1); for(i = 1:length(histo)) dummy = dummy + histo(i); freq(i) = dummy; end %% normalization normal = zeros(length(freq),1); Imax = 255; N = nrow * ncol; for(i = 1:length(freq)) val = freq(i) * Imax / N; normal(i) = roundoff(val); end %% mapping newImg = tmp; for(i = 1:length(tmp)) newImg(i) = normal(tmp(i)+1); end %% separation for(i = i:nrow) img(i,:) = newImg((i-1)*ncol+1:i*ncol); end img = cast(img,'uint8'); subplot(1,2,2); imshow(img); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function rndoff = roundoff(num) int = cast(num,'uint8'); deci = num - cast(cast(num,'uint8'),'double'); if(deci < 0.5) rndoff = cast(int,'double'); else rndoff = cast(int+1,'double'); end end
[RESULT]
'Scientific Computing > Image Processing' 카테고리의 다른 글
[Image Processing] Edge Detector / Homogeneity Operator (0) | 2014.06.07 |
---|---|
[Image Processing] Sharpening (0) | 2014.06.06 |
[Image Processing] Gaussian Blurring (0) | 2014.06.06 |
[Image Processing] Blurring (0) | 2014.06.06 |
[Image Processing] Embossing (0) | 2014.06.06 |