导入 XuXuCheck 工程(iOS 干化学尿液试纸分析 App)
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。 为控制仓库体积做了两处删减: - 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片 (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该 xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录, 只保留 ios-arm64 与 ios-arm64_x86_64-simulator。 - 移除全部 .DS_Store 与 xcuserdata/。 已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED, ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号 (OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。 仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
#ifndef __COMPARER_H__
|
||||
#define __COMPARER_H__
|
||||
#include "ContourSelector.h"
|
||||
template <GF_FLAG T,bool isGreater=true>
|
||||
struct Comparer
|
||||
{
|
||||
bool operator()(const ContourSelector::PairTExtend& s1, const ContourSelector::PairTExtend& s2)
|
||||
{
|
||||
ContourGfExtend *pContourGf1=s1.second;
|
||||
ContourGfExtend *pContourGf2=s2.second;
|
||||
double gfValue1=0.0;
|
||||
double gfValue2=0.0;
|
||||
switch (T)
|
||||
{
|
||||
case Perimeter:
|
||||
{
|
||||
gfValue1 = pContourGf1->getContourPerimeter();
|
||||
gfValue2 = pContourGf2->getContourPerimeter();
|
||||
}
|
||||
break;
|
||||
case Area:
|
||||
{
|
||||
gfValue1 = pContourGf1->getContourArea();
|
||||
gfValue2 = pContourGf2->getContourArea();
|
||||
}
|
||||
break;
|
||||
case CenterX:
|
||||
{
|
||||
gfValue1 = pContourGf1->getContourCenter().x;
|
||||
gfValue2 = pContourGf2->getContourCenter().x;
|
||||
}
|
||||
break;
|
||||
case CenterY:
|
||||
{
|
||||
gfValue1 = pContourGf1->getContourCenter().y;
|
||||
gfValue2 = pContourGf2->getContourCenter().y;
|
||||
}
|
||||
break;
|
||||
case LeftTopX:
|
||||
{
|
||||
gfValue1 = pContourGf1->getLeftTop().y;
|
||||
gfValue2 = pContourGf2->getLeftTop().y;
|
||||
}
|
||||
break;
|
||||
case LeftTopY:
|
||||
{
|
||||
gfValue1 = pContourGf1->getLeftTop().y;
|
||||
gfValue2 = pContourGf2->getLeftTop().y;
|
||||
}
|
||||
break;
|
||||
case RightBottomX:
|
||||
{
|
||||
gfValue1 = pContourGf1->getRightBottom().x;
|
||||
gfValue2 = pContourGf2->getRightBottom().x;
|
||||
}
|
||||
break;
|
||||
case RightBottomY:
|
||||
{
|
||||
gfValue1 = pContourGf1->getRightBottom().y;
|
||||
gfValue2 = pContourGf2->getRightBottom().y;
|
||||
}
|
||||
break;
|
||||
case AspectRatio: //长宽比
|
||||
{
|
||||
gfValue1=pContourGf1->getContourAspectRatio();
|
||||
gfValue2=pContourGf2->getContourAspectRatio();
|
||||
}
|
||||
break;
|
||||
case Rectangularity: //矩形度
|
||||
{
|
||||
gfValue1=pContourGf1->getContourRectangularity();
|
||||
gfValue2=pContourGf2->getContourRectangularity();
|
||||
}
|
||||
break;
|
||||
//灰度值
|
||||
case GrayValue:
|
||||
{
|
||||
gfValue1=pContourGf1->getContourGrayValue();
|
||||
gfValue2=pContourGf2->getContourGrayValue();
|
||||
}
|
||||
break;
|
||||
case Width:
|
||||
{
|
||||
gfValue1=pContourGf1->getSize().width;
|
||||
gfValue2=pContourGf2->getSize().width;
|
||||
}
|
||||
break;
|
||||
case Height:
|
||||
{
|
||||
gfValue1=pContourGf1->getSize().height;
|
||||
gfValue2=pContourGf2->getSize().height;
|
||||
}
|
||||
break;
|
||||
case RedPercentage:
|
||||
{
|
||||
gfValue1=pContourGf1->getColorPercentage(0);
|
||||
gfValue2=pContourGf2->getColorPercentage(0);
|
||||
}
|
||||
break;
|
||||
case GreenPercentage:
|
||||
{
|
||||
gfValue1=pContourGf1->getColorPercentage(1);
|
||||
gfValue2=pContourGf2->getColorPercentage(1);
|
||||
}
|
||||
break;
|
||||
case BluePercentage:
|
||||
{
|
||||
gfValue1=pContourGf1->getColorPercentage(2);
|
||||
gfValue2=pContourGf2->getColorPercentage(2);
|
||||
}
|
||||
break;
|
||||
case RotRectArea:
|
||||
{
|
||||
gfValue1 = pContourGf1->getRotatedRect().size.height * pContourGf1->getRotatedRect().size.width;
|
||||
gfValue2 = pContourGf2->getRotatedRect().size.height * pContourGf2->getRotatedRect().size.width;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (isGreater)
|
||||
{
|
||||
return gfValue1 > gfValue2; //从da到xiao排序
|
||||
}
|
||||
else
|
||||
{
|
||||
return gfValue1 < gfValue2;
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user