用MATLAB在圆区域内求积分

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 04:01:45

用MATLAB在圆区域内求积分
用MATLAB在圆区域内求积分

用MATLAB在圆区域内求积分
自己写了个函数
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 为圆形区域的圆心和直径