【水果识别】基于计算机视觉实现橙子数量识别含Matlab源码
【水果识别】基于计算机视觉实现橙子数量识别含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
在现实生活中成人识别水果是十分简易的但对于幼儿来说在没有实物之前是无法识别水果的,因此本文设计了一个简易水果识别系统为幼儿在电子设备上识别水果提供可能.本文通过matlab GUI设计了一个水果识别系统界面并通过对水果图像进行二值化处理,边缘处理最后实现了橙子数量识别.
2 部分代码
function [t,em] = otsuthresh(counts) %#codegen
%
OTSUTHRESH Global histogram threshold using Otsu
’s method - M-to-C codegen.
%
Copyright 2015 The MathWorks, Inc.
%
Syntax
%
------
%
%
[t,em] = otsuthresh(counts)
%
%
Input Specs
%
-----------
%
%
counts:
%
numeric
%
vector
%
real
%
finite
%
non-sparse
%
non-negative
%
%
Output Specs
%
------------
%
%
t:
%
scalar
%
double
%
in [0,1]
%
%
em:
%
scalar
%
double
%
in [0,1]
%
%
Validate counts
validateattributes(counts,{’numeric’}, ...
{’vector’,’real’,’finite’,’nonsparse’,’nonnegative’},mfilename,’COUNTS’);
%
Number of bins
num_bins = numel(counts);
%
Number of elements
num_elems = 0;
for k = 1:num_bins
num_elems = num_elems + double(counts(k));
end
%
CDF of the histogram
omega = coder.nullcopy(zeros(num_bins,1));
omega(1) = double(counts(1))/num_elems;
mu = coder.nullcopy(zeros(num_bins,1));
mu(1) = omega(1);
for k = 2:num_bins
% PDF
p = double(counts(k))/num_elems;
% CDF
omega(k) = omega(k-1) + p;
% "weighted" CDF
mu(k) = mu(k-1) + p*k;
end
mu_t = mu(end);
%
Equation 18 in the paper
sigma_b_squared = coder.nullcopy(zeros(num_bins,1));
maxval = -coder.internal.inf;
for k = 1:num_bins
sigma_b_squared(k) = (mu_t*omega(k) - mu(k))^2 / (omega(k)*(1-omega(k)));
maxval = max(maxval,sigma_b_squared(k));
end
%
Find the location of the maximum value of sigma_b_squared.
%
If maxval is NaN, meaning that sigma_b_squared
%
is all NaN, then return 0.
isfinite_maxval = isfinite(maxval);
if isfinite_maxval
% The maximum may extend over several bins,
% so average together the locations.
idx = double(0);
num_maxval = double(0);
for k = 1:num_bins
idx = idx + k * double(sigma_b_squared(k) == maxval);
num_maxval = num_maxval + 1 * double(sigma_b_squared(k) == maxval);
end
idx = idx / num_maxval;
% Normalize the threshold to the range [0,1]
t = (idx - 1) / (num_bins - 1);
else
t = 0;
end
%
Compute the effectiveness metric
if nargout > 1
if isfinite_maxval
d = 0;
for k = 1:num_bins
d = d + double(counts(k))/num_elems * k^2;
end
em = maxval/(d - mu_t^2);
else
em = 0;
end
end
3 仿真结果
4 参考文献
[1]阳江平. 基于计算机视觉的果蔬识别方法研究[D]. 大连理工大学.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
