Image 如何使用MATLAB图像处理计算锥形喷雾图像(2D)一半长度处的面积?
我有一张燃油喷射的图像,我想找到燃油喷射的角度。我读过的一篇研究论文告诉我,我可以通过喷雾一半长度的面积来找到角度,我已经试着找到喷雾一半长度的面积了好几个星期了 下面的代码显示了我的尝试。我也尝试过其他的方法,比如剔除所有非零元素,只计算从喷雾末端开始的角度。因为这给了我一个不准确的答案,我在这里寻求帮助Image 如何使用MATLAB图像处理计算锥形喷雾图像(2D)一半长度处的面积?,image,matlab,image-processing,Image,Matlab,Image Processing,我有一张燃油喷射的图像,我想找到燃油喷射的角度。我读过的一篇研究论文告诉我,我可以通过喷雾一半长度的面积来找到角度,我已经试着找到喷雾一半长度的面积了好几个星期了 下面的代码显示了我的尝试。我也尝试过其他的方法,比如剔除所有非零元素,只计算从喷雾末端开始的角度。因为这给了我一个不准确的答案,我在这里寻求帮助 img_subt_binary= imbinarize(img_subt); BW2= BiggestImageOnly(img_subt_binary);% Clear o
img_subt_binary= imbinarize(img_subt);
BW2= BiggestImageOnly(img_subt_binary);% Clear out all white areas that have less than 175 pixels.
% figure(2),imshow(BW2),
% title('Filtered Binary Image')
% [pixelCount, grayLevels] = imhist(BW2);
% figure(3)
% bar(grayLevels, pixelCount);
[the_length,the_width]=size(BW2)
%% Spray Angle
half_length=the_length/2;
for j=1:half_length
j=j+1;
[LL(j),WW(j)]= size(BW2);
final_width=max(WW);
end
angle= atan(final_width/half_length)
我预计喷雾角度在20度左右
要更好地估计宽度(喷射角度)的变化,您可能需要在整个图像上拟合一条线
[h w] = size(BW2);
margin = ceil(h/10); % ignore top/bottom parts
row_width = sum(BW2(margin:end-margin,:), 2); % number of white pixel in each row
x = 1:numel(row_width);
pp = polyfit(x, row_width.', 1); % fit a line
% see the line
figure;
plot(row_width);
hold all;
plot(x, x*pp(1) + pp(2));
% get the angle (in degrees)
angle = atan(pp(1)) * 180 / pi
估计角度为
情节:什么是
[测试图像][1]
做的?我认为这不是有效的MATLAB语法。我也不明白为什么你反复做size(BW2)
,BW2
在你的循环中不会改变,所以它的大小也不会改变WW
将填充图像的宽度,因此final_width
也将是图像的宽度。我认为那对你没用。
7.1081