저는 matlab에서 매우 새롭습니다. 로컬 히스토그램 균등화 코드를 작성하고 싶습니다. 전역 히스토그램 평준화에 대한 코드가 작성되었으며 로컬 균등화는 이미지의 각 부분에 대해 균등하게 평등화를 수행한다는 것을 알고 있지만 내 질문은이 부분을 어떻게 선택해야합니까? 예를 들어 다른 픽셀의 이웃으로 분리 된 각 100 픽셀에 대해 균등화를 수행해야합니까? 다른 말로하면 이미지를 어떤 부분으로 분해 한 다음 각 부분을 균등하게 처리하는 방법은 무엇입니까?matlab의 로컬 히스토그램 균등화
답변
당신이 물어 보는 가장 순진한 방법은 이미지를 겹치지 않는 블록들로 나누는 것입니다. 그 블록에 대한 글로벌 히스토그램 코드를 만들어 출력물에 저장하십시오. 이러한 겹치지 않는 블록의 행과 열을 변수 rows
및 cols
으로 정의했다고 가정합니다. 귀하의 경우 100x100이라고 가정 해 보겠습니다. 따라서 rows = 100; cols = 100;
입니다. 서로 겹치지 않는 각 블록을 루프 처리하고 히스토그램 등화를 수행 한 다음이를 출력의 동일한 위치로 설정하면됩니다. 이미지를 가정
아래 뭔가 같이이 im
에 저장되어
rows = 100;
cols = 100;
out = zeros(size(im)); % Declare output variable
for ii = 1 : rows : size(im, 1)
for jj = 1 : cols : size(im, 2)
% Get the block
row_begin = ii;
row_end = min(size(im, 1), ii + rows);
col_begin = jj;
col_end = min(size(im, 2), jj + cols);
blk = im(row_begin : row_end, col_begin : col_end, :);
% Perform histogram equalization with the block stored in blk
% ...
% Assume the output of this is stored in O
out(row_begin : row_end, col_begin : col_end, :) = O;
end
end
참고 비 중첩 블록을 저장하는 변수의 복잡함 blk
. 시작 행과 열을 단순히 루프 카운터 ii
과 jj
으로 지정하지만, 끝 행과 열은 이미지의 크기로 제한되어야합니다. 그렇기 때문에 min
전화가 왔던 것입니다. 그렇지 않으면 끝나는 행과 열은 단순히 해당 행의 블록 크기만큼 추가 된 시작 행과 열입니다. 또한 컬러 이미지가있는 경우를 대비하여 :
을 사용하여 3 차원으로 색인을 생성했습니다. 그레이 스케일은이 코드에 영향을 주어서는 안됩니다. 마지막으로 출력 이미지에 출력을 저장할 때 동일한 인덱싱을 사용해야합니다. 사용자 정의 히스토그램 등화 기능의 출력 인 변수 O
에 저장되어 있다고 가정했습니다.
출력 out
에는 로컬로 히스토그램 평등화 된 이미지가 포함됩니다. 이론적으로 이미지 처리 도구 상자에 blockproc
을 사용하여 한 줄에이 작업을 수행 할 수 있습니다. 이렇게하면 이미지의 다른 블록을 처리하고 일부 기능을 적용합니다. 당신은 단순히 이런 짓을 했을까, 이퀄라이제이션 기능이 hsteq
라고 당신의 히스토그램을 가정 :
rows = 100; cols = 100;
out = blockproc(im, [rows, cols], @(s) hsteq(s.data));
첫 번째 입력은 처리 할 이미지가, 두 번째 입력 블록 크기를 정의하고 결국 마지막 요소는 당신이 원하는 기능입니다 각 블록에 적용 할 수 있습니다. blockproc
은 사용자 정의 구조를 함수에 제공하므로 중요한 것은 구조의 data
필드를 꺼내는 것입니다. 위의 코드와 동일한 출력을 루프로 생성해야합니다.
감사 – taranom
- 1. 수동으로 로컬 히스토그램 균등화
- 2. 히스토그램 균등화 구현
- 3. 히스토그램 룩업 테이블을 사용하는 이미지의 균등화
- 4. 히스토그램 예기치 않은 결과를 야기하는 균등화
- 5. Matlab의 범주 테이블 히스토그램
- 6. MATLAB의 히스토그램 왜곡 추정
- 7. MATLAB의 이진 이미지 히스토그램
- 8. MATLAB의 비 이미지에 대한 막대 그래프 균등화
- 9. Matlab의 히스토그램 막대의 색 변경
- 10. matlab의 이미지 행렬에 균등 히스토그램 새로 적용
- 11. Matlab의 이미지에서 RGB 값의 히스토그램 비교
- 12. 이미지 균등화
- 13. Matlab의 로컬 서버에 연결
- 14. MATLAB의 로컬 임계 값
- 15. MATLAB의 로컬 이진 패턴
- 16. 비디오의 히스토그램 평준화
- 17. 날짜 형식 균등화 - 방법?
- 18. 처리를위한 AggregateExceptions의 균등화
- 19. XTicks 라벨을 Matlab의 히스토그램 플롯에있는 각 막대와 가운데 정렬하고 간격을
- 20. 얼굴 인식 - 로컬 이진 패턴 히스토그램 비교
- 21. 히스토그램 매치 한 히스토그램
- 22. 히스토그램
- 23. 히스토그램
- 24. 히스토그램
- 25. Matlab에서 히스토그램 데이터를 얻는 방법
- 26. sd 카드 마모 균등화 비활성화
- 27. 두 개의 다른 객체를 균등화
- 28. 히스토그램 및 히스토그램 바운딩 박스
- 29. 로컬 히스토그램 - 이미지의 모든 부분에 대한 재 계산 히스토그램 - 이미이있다 matlab에
- 30. 히스토그램 값 범위를 따라 이동
는 다음 읽기 : [https://en.wikipedia.org/wiki/Adaptive_histogram_equalization](https://en.wikipedia.org/wiki/Adaptive_histogram_equalization) 답변에 대한 – Rotem
@Rotem 답변 주셔서 감사 – taranom