Download - 영상처리 실습 #4
![Page 1: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/1.jpg)
영상처리 실습 #4
Histogram 연산
[ Histogram 대화상자 만들기 ]
![Page 2: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/2.jpg)
Histogram 대화상자 만들기
![Page 3: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/3.jpg)
Histogram 대화상자 만들기
Click
![Page 4: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/4.jpg)
Histogram 대화상자 만들기
![Page 5: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/5.jpg)
Histogram 대화상자 만들기
Drag
![Page 6: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/6.jpg)
Histogram 대화상자 만들기
Drag
Click
![Page 7: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/7.jpg)
Histogram 대화상자 만들기
Click
![Page 8: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/8.jpg)
Histogram 대화상자 만들기
Click
![Page 9: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/9.jpg)
Histogram 대화상자 만들기
![Page 10: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/10.jpg)
Histogram 대화상자 만들기
![Page 11: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/11.jpg)
Histogram 대화상자 만들기
![Page 12: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/12.jpg)
Histogram 대화상자 만들기
m_ctrlHistogram
![Page 13: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/13.jpg)
Histogram 대화상자 만들기
![Page 14: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/14.jpg)
Histogram 대화상자 만들기
Double Click
![Page 15: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/15.jpg)
Histogram 대화상자 만들기
CxImage img,
unsigned int x, y;m_nMaxHistogram = 0;
// 히스토그램 초기화for (x=0; x<256; x++)
m_pHistogram[x] = 0;
// 히스토그램 구하기for (y=0; y<img.GetHeight(); y++)
for (x=0; x<img.GetWidth(); x++)m_pHistogram[img.GetPixelGray(x,y)]++;
// 히스토그램 최대값 구하기for (x=0; x<256; x++)
if (m_pHistogram[x] > m_nMaxHistogram)m_nMaxHistogram = m_pHistogram[x];
![Page 16: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/16.jpg)
Histogram 대화상자 만들기
CxImage img,추가
unsigned int m_pHistogram[256];unsigned int m_nMaxHistogram;
Double Click
![Page 17: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/17.jpg)
Histogram 대화상자 만들기
![Page 18: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/18.jpg)
Histogram 대화상자 만들기
![Page 19: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/19.jpg)
Histogram 대화상자 만들기
CRect win_rect;
// 0 점 설정 : 픽쳐컨트롤 왼쪽 아래m_ctrlHistogram.GetWindowRect(&win_rect);ScreenToClient(&win_rect);dc.SetViewportOrg(win_rect.left, win_rect.bottom-1);
// 좌표 설정dc.SetMapMode(MM_ANISOTROPIC);dc.SetWindowExt(256, m_nMaxHistogram+1);dc.SetViewportExt(win_rect.Width(), win_rect.Height());
// 히스토그램 그리기for (int i=0; i<256; i++){
dc.MoveTo(i,0);dc.LineTo(i, -m_pHistogram[i]);
}
![Page 20: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/20.jpg)
Histogram 대화상자 만들기
![Page 21: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/21.jpg)
Histogram 대화상자 만들기
Click
![Page 22: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/22.jpg)
Histogram 대화상자 만들기
![Page 23: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/23.jpg)
Histogram 대화상자 만들기
CDlgHistogram dlg(*m_pImage);dlg.DoModal();
![Page 24: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/24.jpg)
Histogram 대화상자 만들기
맨위로 스크롤
![Page 25: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/25.jpg)
Histogram 대화상자 만들기
#include "DlgHistogram.h"
![Page 26: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/26.jpg)
Histogram 대화상자 실행
![Page 27: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/27.jpg)
영상처리 실습 #4
Histogram 연산
[ Histogram Equalization ]
![Page 28: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/28.jpg)
Histogram Equalization
![Page 29: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/29.jpg)
Histogram Equalization
![Page 30: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/30.jpg)
Histogram Equalization
총 픽셀 수
![Page 31: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/31.jpg)
Histogram Equalization
int x, y; int i, nTemp;double sum, pixel_Number; /* variable used to increment
sum of hist */double histogram[256]; /* image histogram */double sum_hist[256]; /* sum of histogram elements */double scale_factor; /* normalized scale factor */
/* clear histogram to 0 */for(i=0; i<256; i++)histogram[i]=0;
/* calculate histogram */for(x=0; x<m_pImage->GetHeight(); x++){
for(y=0; y<m_pImage->GetWidth(); y++){
histogram[m_pImage->GetPixelGray(x,y)]++;}
}
![Page 32: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/32.jpg)
Histogram Equalization
/* calculate normalized sum of hist */sum = 0;pixel_Number = m_pImage->GetHeight() * m_pImage->GetWidth();scale_factor = 255.0 /pixel_Number;
for(i=0; i<256; i++){
sum += histogram[i];sum_hist[i] = (sum * scale_factor) + 0.5;
}
/* transform image using new sum_hist as a LUT */for(y=0; y<m_pImage->GetHeight(); y++){
for(x=0; x<m_pImage->GetWidth(); x++){
nTemp = sum_hist[m_pImage->GetPixelGray(x,y)];m_pImage->SetPixelColor(x, y, RGB(nTemp,nTemp,nTemp));
}}
UpdateAllViews(NULL);
![Page 33: 영상처리 실습 #4](https://reader033.vdocuments.site/reader033/viewer/2022061614/56812a93550346895d8e4563/html5/thumbnails/33.jpg)
Histogram Equalization 결과 영상
원본 영상 결과 영상
Histogram Equalization