在matlab中进行图像处理,直方图处理与区域直方图处理有什么不同。他们...
发布网友
发布时间:2024-09-26 00:20
我来回答
共3个回答
热心网友
时间:2024-11-05 03:46
一般都是用区域直方图处理吧。
直方图处理是一般用于图像增强,从整体上对图像进行修改。
区域直方图着重在某一个区域上对图像进行修改,识别能力更强吧。
热心网友
时间:2024-11-05 03:41
自己写了个函数
function H = circlehist(img, a, b, d)
% 函数功能:提取图像指定圆形区域的灰度直方图
% img 要处理的图像用字符串格式输入如: 'test.png'
% a, b 为圆形区域圆心的位置
% d 为圆形区域的直径
% H 为返回值,大小为256的数组
I = imread(img);
if length(size(I))==3
I = rgb2gray(I);
end
[m, n] = size(I);
H = zeros(1,256);
for i = (a-d/2):(a+d/2)
for j = (b-sqrt((d/2)^2-abs(a-i)^2)):(b+sqrt((d/2)^2-abs(a-i)^2))
x = round(i);
y = round(j);
if (x<1||y<1||x>m||y>n)
continue;
end
H(I(x,y)+1) = H(I(x,y)+1) + 1;
I(x,y) = I(x,y) - 100;
end
end
figure, imshow(I);
figure, bar(0:255, H);
end
用法:在matlab中输入 circle('test.png', a, b, d)
其中 a, b, d 为圆形区域的圆心和直径
热心网友
时间:2024-11-05 03:47
听起来,直方图就是对全图进行统计。区域直方图就是对局部统计。如果不考虑复杂度当然是区域直方图好了,可以具体识别每个部位