用matlab对硬币识别,先利用颜色把五角识别出来,求高手告诉程序,图片如下。

用matlab对硬币识别,先利用颜色把五角识别出来,求高手告诉程序,图片如下。,第1张

先用Hough变换找出圆圈

根据圈瞎和内的RGB来找出黄色的五角

再根据剩漏顷下圆圈的直径来判磨搜盯断一角与一元

提示一下,这个题目还挺有意思的,你自己好好做吧

这应该用贝叶斯 (Bayes) 理论来做。

下面的P代表概率

A代表那枚硬币是正常的,B代表那枚硬币是异常的。

X(k)代表扔了k次全是正面的事件。

P(X(k) | A) = (1/2)^k

P(X(k) | B) = 1

作为博弈猜锋论来讲,我们需要假设敌人选取A或B的概率相等,也就是:P(A) = P(B) = 1/2

由全概率公式:

P(X(k)) = P(X(k) | A) * P(A) + P(X(k) | B) * P(B) = (1/2)^(k+1) + (1/2)

由贝叶斯公式:

P(A | X(k)) = P(X(k) | A) * P(A) / P(X(k))

= (1/2)^(k+1) / [(1/2)^(k+1) + (1/2)]

= 1 / (2^k + 1)

P(B | X(k)) = P(X(k) | B) * P(B) / P(X(k))

= (1/2) / [(1/2)^(k+1) + (1/2)]

= (2^k) / (2^k + 1)

对于判断是A还是B来讲,只需看P(A | X(k))和P(B | X(k))哪个大,哪个大就判断是哪个。

显然,P(A | X(k)) < P(B | X(k)),所以永远判断是B。

下面计算失去的本金

设 k 次正面后,我们判迹兆穗断为 B 型硬币。

我们失去的本金是这样的:

如果原本是 A 型硬币。

对于任意 i (1<=i<=k),如果前 i-1 次是正面,而第 i 次是背面,姿卜那么我们就能正确判断出 A。

此时我们失去的本金是:i

如果前 k 次都是正面,那么我们将作出错误判断,失去的本金将是:n

如果原本是 B 型硬币。

那么我们失去的本金是:k

所以,我们失去的本金的期望是:

这个方程只能用数值求解,比如用Matlab:

fzero('2^x - (1000 - x - 2) * log(2) - 1', 1)

得到解是:9.4225

也就是在 9 或 10 取到最小值。

再算算具体的值:

f(9) = 4.4658

f(10) = 4.4824

所以,最优的方法是扔 9 次后判断,失去的本金的期望是:4.4658

还可以用Matlab画张图(点击可放大):

横轴是 k 值(k 从 1 到 100),纵轴是在 k 时结束损失的本金:

采用类似于抛硬币的方式来统计(即蒙特卡罗模拟法):

1、如果X和Y没有分布,则在Y的区间内按均匀分布取一万个凳拍Y,然后也取一万个X。

2、对每个X,统计其大于枣哪羡Y的个数,记下该数值。

3、缓侍将上一步所得的个数取平均值,用该平均值除以一万,该值即约等于X>Y的概率。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12369694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存