Dan*_* S. 6 c++ opencv colors metric
我有两个cv::Scalar对象,我想计算色差.
我想出了这段代码:
cv::Scalar a(255, 128, 255); // color 1
cv::Scalar b(100, 100, 100); // color 2
cv::Scalar d = b - a;
double distance = sqrtl(d[0]*d[0] + d[1]*d[1] + d[2]*d[2]);
Run Code Online (Sandbox Code Playgroud)
这看起来很笨拙.是否有更简单的方式来表达这个或另一个指标,例如表达点积d*d的方法,或直接说两个距离的方式cv::Scalar,或者cv::Vec4i可以将其表达为afaik?
根据@IwillnotexistIdonotexist的建议,您可以使用Vec该类并根据norm():
cv::Vec4d d = a-b;
double distance = cv::norm(d);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3990 次 |
| 最近记录: |