判断两个Mat图像是否绝对相等
2017-06-17 13:48
936 查看
先比较结构体参数是否一致,再用memcmp比较图像数据是否一致.
bool matIsEqual(const cv::Mat mat1, const cv::Mat mat2) {
if (mat1.empty() && mat2.empty()) {
return true;
}
if (mat1.cols != mat2.cols || mat1.rows != mat2.rows || mat1.dims != mat2.dims||
mat1.channels()!=mat2.channels()) {
return false;
}
if (mat1.size() != mat2.size() || mat1.channels() != mat2.channels() || mat1.type() != mat2.type()) {
return false;
}
int nrOfElements1 = mat1.total()*mat1.elemSize();
if (nrOfElements1 != mat2.total()*mat2.elemSize()) return false;
bool lvRet = memcmp(mat1.data, mat2.data, nrOfElements1) == 0;
return lvRet;
}
bool matIsEqual(const cv::Mat mat1, const cv::Mat mat2) {
if (mat1.empty() && mat2.empty()) {
return true;
}
if (mat1.cols != mat2.cols || mat1.rows != mat2.rows || mat1.dims != mat2.dims||
mat1.channels()!=mat2.channels()) {
return false;
}
if (mat1.size() != mat2.size() || mat1.channels() != mat2.channels() || mat1.type() != mat2.type()) {
return false;
}
int nrOfElements1 = mat1.total()*mat1.elemSize();
if (nrOfElements1 != mat2.total()*mat2.elemSize()) return false;
bool lvRet = memcmp(mat1.data, mat2.data, nrOfElements1) == 0;
return lvRet;
}
相关文章推荐
- [AS3]判断两个对象是否相等
- C#如何判断两个日期是否相等
- javascript 判断两个变量是否相等
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现 总结
- 默认的Equals并非是判断两个对象相等,而是判断是否是同一引用
- 学习体会:在JAVA中如何判断两个对象是否相等
- C#如何判断两个日期是否相等
- android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现
- 汇编:判断两个字符串是否相等
- 判断两个图片是否相等
- struts标签判断两个session中的字符串值是否相等
- 判断两个Integer是否相等不能用==,要用compareTo方法
- 判断两个(float)变量x,z是否相等 以及和0值比较方法
- 判断两个表结构及其数据是否相等
- js 判断两个变量是否相等
- java中判断两个字符串是否相等的问题
- java中判断两个数组是否相等
- java 判断两个对象是否相等 equals 和 hashcode() 的必要性
- Collection判断两个对象是否相等
- struts2 s:if 判断两个变量是否相等