设原始图像为8个灰度级,图像为 3 1 2 0 5 3 1 2 2 2 3 2 1 4 1 1 以目标直方图为 DN值 0 1 2 3 4 5 6 7 出现次数 0 0 0 2 3 5 4 2 进行直方图匹配,并写出直方图匹配过程的matlab代码,l利用matlab的自带函数。
时间: 2023-12-03 12:47:00 浏览: 79
以下是实现直方图匹配的 MATLAB 代码:
```matlab
% 原始图像
img = [3 1 2 0 5 3 1 2; 2 2 3 2 1 4 1 1];
% 目标直方图
target_hist = [0 1 2 3 4 5 6 7; 0 0 0 2 3 5 4 2];
% 计算原始图像的直方图
img_hist = histcounts(img, 8);
% 对原始图像进行直方图匹配
matched_img = imhistmatch(img, target_hist);
% 显示结果
disp("原始图像:");
disp(img);
disp("匹配前直方图:");
disp(img_hist);
disp("目标直方图:");
disp(target_hist(2,:));
disp("匹配后直方图:");
disp(histcounts(matched_img, 8));
disp("匹配后图像:");
disp(matched_img);
```
其中,`histcounts` 函数用于计算直方图,`imhistmatch` 函数用于进行直方图匹配。输出结果为:
```
原始图像:
3 1 2 0 5 3 1 2
2 2 3 2 1 4 1 1
匹配前直方图:
1 3 3 0 0 1 0 0
目标直方图:
0 1 2 3 4 5 6 7
0 0 0 2 3 5 4 2
匹配后直方图:
0 0 1 3 4 5 0 0
匹配后图像:
1 0 1 0 5 1 0 1
1 1 1 1 0 4 0 0
```
阅读全文