이 함수는 광도 범위를 n 빈으로 분할하여 행렬 M의 요소에 대한 히스토그램을 생성합니다. 각 빈에는 해당 광도 레벨 범위에 속하는 픽셀 수가 들어 있습니다. 예를 들어, n = 256이면 8비트 그레이스케일 이미지의 모든 가능한 광도 레벨 각각에 대해 빈 하나가 사용됩니다. 256개 보다 적은 빈이 있는 경우에는 다음과 같은 방식으로 광도 레벨이 빈으로 분할됩니다.
빈 레이블은 0부터 시작합니다. 256개 이상의 빈이 있는 경우 빈 크기가 1보다 작습니다.
1. 값과 히스토그램 모양 간의 관계를 확인하기 위해 작은 행렬 하나를 정의합니다.
2. 위 행렬에 imhist 함수를 적용할 빈 수를 정의합니다.
n = 255이므로 256개 광도 레벨 각각이 고유한 빈을 갖게 됩니다. 행렬 P에서 볼 수 있는 것처럼 한 번 이상 나오는 빈은 150뿐입니다.
3. 광도 레벨의 히스토그램을 도표화합니다.
4. n을 더 작은 값(예: 5)으로 설정하고 차이점을 확인합니다.
n = 5이므로 256개 광도 레벨을 5개의 개별 빈으로 분할해야 합니다. 0에서 256/5 사이의 광도 값은 빈 0에, 256/5에서 512/5 사이의 값은 빈 1에 포함되는 식으로 빈이 분할됩니다.
이미지의 흰 공백(광도 값=255)은 오른쪽에 큰 돌출부로 나타납니다. 검정 및 기타 구분 가능한 회색조를 다른 빈에서 확인할 수 있습니다.
7. 빈 0(검정)과 빈 255(흰색)의 항목 수를 계산합니다.
이미지의 여러 회색 음영 영역은 X축을 따라 작은 돌출부로 나타납니다.
imhist2
이 함수는 0에서 255 사이의 범위를 벗어나는 값을 가진 빈 데이터에 사용할 수 있습니다.
1. 0에서 255 사이의 범위를 벗어나는 요소를 포함하는 행렬을 정의합니다.
2. 빈 수를 정의하고 n 빈 히스토그램을 계산합니다.
3. n 빈의 끝점을 계산합니다.
hist2d
이 함수는 각 차원에 n 빈을 생성하여 두 이미지 M 및 N의 2D 히스토그램을 생성합니다. M 및 N의 크기는 같아야 합니다. 두 이미지의 명암이 유사한 부분에서 픽셀 수가 유사하다면 hist2d의 출력 행렬은 강한 대각선 행렬을 형성합니다. 이 함수는 0–255 범위를 n 빈으로 분할합니다.
1. 빈 수를 정의하고 같은 크기의 이미지 행렬 두 개를 정의합니다.
2. 위에서 정의한 bin_label 함수에 벡터화 연산자를 사용하여 P 및 Q의 빈 수를 계산합니다.
2D 히스토그램은 빈 번호 c인 Pbins의 요소가 있고 Qbins에서 대응하는 요소의 개수가 r일 경우 열 c 및 행 r의 개수로 이루어진 n x n 행렬입니다. 예를 들어, Pbins 및 Qbins의 첫 번째 요소는 0 및 2이므로 히스토그램 행렬의 열 0, 행 2에서 개수 1을 생성합니다.
6. extract 함수를 사용하여 녹색 및 파랑 컴포넌트를 따로 추출하고 두 색상 컴포넌트를 비교할 수 있습니다.
7. 2D 히스토그램을 표시합니다.
(hist2d.bmp)
8. 2D 히스토그램을 로그 눈금 위에 광도 이미지로 표시합니다.
이미지를 검토하고 광도의 차이를 관찰합니다. 이 2D 히스토그램은 강한 대각선 행렬입니다. 즉, 해당하는 위치에서 대부분의 픽셀이 유사한 광도를 가집니다. 이것은 동일한 사진의 두 색상 컴포넌트이므로 이상한 일이 아닙니다. 텍스쳐가 매우 다른 두 이미지에서는 대각선이 이렇게 분명하지 않습니다.