OpenPose C++实现多人姿态估计 - smoothProbMap.mul 执行了什么操作
C++实现OpenPose多人姿态估计smoothProbMap.mul 执行了什么操作?flyfishcv::minMaxLoc(smoothProbMap.mul(blobMask),0,&maxVal,0,&maxLoc);解释MatExpr cv::Mat::mul(InputArraym,doublescale = 1)constP...
OpenPose C++实现多人姿态估计
smoothProbMap.mul 执行了什么操作?
flyfish
cv::minMaxLoc(smoothProbMap.mul(blobMask),0,&maxVal,0,&maxLoc);
解释
MatExpr cv::Mat::mul ( InputArray m,double scale = 1) const
Performs an element-wise multiplication or division of the two matrices.
The method returns a temporary object encoding per-element array multiplication, with optional scale.
Note that this is not a matrix multiplication that corresponds to a simpler “*” operator.
执行两个矩阵的逐元素乘法或除法。
该方法返回编码每个元素数组乘法的临时对象,具有可选的小数位数位数。请注意,这不是与更简单的“*”运算符相对应的矩阵乘法。
假设有两个矩阵
A = [ a 00 a 01 a 10 a 11 ] B = [ b 00 b 01 b 10 b 11 ] A=\left[\begin{array}{ll}{a_{00}} & {a_{01}} \\ {a_{10}} & {a_{11}}\end{array}\right] \quad B=\left[\begin{array}{ll}{b_{00}} & {b_{01}} \\ {b_{10}} & {b_{11}}\end{array}\right] A=[a00a10a01a11]B=[b00b10b01b11]
执行cv::Mat::mul的过程就是
A ⋅ mul ( B ) = [ a 00 × b 00 a 01 × b 01 a 10 × b 10 a 11 × b 11 ] A \cdot \operatorname{mul}(B)=\left[\begin{array}{ll}{a_{00} \times b_{00}} & {a_{01} \times b_{01}} \\ {a_{10} \times b_{10}} & {a_{11} \times b_{11}}\end{array}\right] A⋅mul(B)=[a00×b00a10×b10a01×b01a11×b11]
不是矩阵乘法
这里的A就是smoothProbMap,B就是blobMask
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)