일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이토치 김성훈 교수님 강의 정리
- 모두의 딥러닝
- 영상처리
- pytorch
- MFC 프로그래밍
- 파이토치 강의 정리
- c언어 정리
- pytorch zero to all
- 파이토치
- 딥러닝 공부
- 딥러닝 스터디
- Pytorch Lecture
- 가우시안 필터링
- matlab 영상처리
- C언어 공부
- 케라스 정리
- 해리스 코너 검출
- c언어
- 미디언 필터링
- 팀프로젝트
- 컴퓨터 비전
- c++
- TensorFlow
- c++공부
- tensorflow 예제
- 김성훈 교수님 PyTorch
- object detection
- 모두의 딥러닝 예제
- 골빈해커
- 딥러닝
- Today
- Total
ComputerVision Jack
[Matlab - 영상의 히스토그램 출력] 본문
Matlab을 이용하여 영상의 히스토그램을 출력해보겠습니다. src 파일로는 영상처리의 대표적인 이미지 lena.tif 파일을 사용하겠습니다.
Matlab Histogram
히스토그램은 영상의 발기 값의 분포를 알기 위하여 사용하는 방법입니다.
우선 0~256 (그레이 스케일 값의 범위) 배열을 만든 후에, 영상의 각 픽셀 값에 접근하여 그 밝기 값에 해당하는 인덱스 값을 증가시키면 됩니다.
[matlab Histogram code]
우선 opencv와 마찬가지로 imread( ) 함수를 통하여 영상을 읽어옵니다.
# 주의할 점은 영상의 경로 설정입니다.
그 다음 이중 for문으로 영상의 각 픽셀에 접근하기 위해 size( ) 함수에 영상을 넣어 height과 width의 값을 가져옵니다.
H = zeros([256, 1]) 통하여 그레이 스케일 값의 크기만큼 0 배열을 선언합니다.
이중 for문을 돌아 해당 픽셀 값의 밝기 값을 체크한 후 밝기 값에 해당하는 H 배열의 인덱스 값을 증가시킵니다.
코드를 실행 시키면 화면에 아무것도 나오지 않습니다.
옆에 보시면 작업 공간이 생기고 코드를 실행 후, 변수의 값이 저장되어 있습니다.
여기서 H의 경우 저희가 작업한 히스토그램의 값이 들어있는 배열입니다.
H변수를 클릭하고 상위 플롯 부분에 들어가시면 원하는 모양으로 그래프를 그려볼 수 있습니다.
Histogram Binning
고해상도 이미지는 매우 큰 히스토그램을 생성 할 수 있습니다. 이러한 큰 히스토그램은 보기에 실용적이지 못합니다.
따라서 Binning 과정을 통해 다양한 강도 값을 히스토그램 열에 결합하여야 합니다.
[matlab Binning Histogram code]
Histogram을 만드는 코드에서 달라진 점은 H 배열이 0 ~ 256 값이 아닌 32까지로 범위가 줄어들었습니다.
double과 int8로의 형변환에 주의하여 코딩하셔야 합니다.
수치적으로 잘 감이 안온다면 그래프로 출력해보시면 확인 할 수 있습니다. 왼쪽은 lena의 일반 histogram 입니다. 왼쪽은 내가 원하는 값으로 bin값을 설정한 후, (밝기 값 * bin 값)을 256로 나누어 해당 비율 값을 확인 할 수 있습니다.
'Image Processing > Matlab ImageProcessing' 카테고리의 다른 글
[Matlab - Gaussian Filter] (0) | 2020.07.24 |
---|---|
[Matlab - MeanFilter function] (0) | 2020.07.21 |
[Matlab - AlphaBlending] (0) | 2020.07.21 |
[Matlab - Point Operation Threshold] (0) | 2020.07.16 |
[Matlab - Point Operation] (0) | 2020.07.16 |