d6aeede2bc
从桌面工程复制而来,作为本仓库的 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。
142 lines
2.3 KiB
C++
142 lines
2.3 KiB
C++
#ifndef __CONTOURGF_H__
|
|
#define __CONTOURGF_H__
|
|
|
|
#include <opencv2/opencv.hpp>
|
|
#include <opencv2/core/core.hpp>
|
|
//#include <opencv2/core/types_c.h>
|
|
|
|
using namespace cv;
|
|
|
|
enum GF_FLAG
|
|
{
|
|
Perimeter,
|
|
Area,
|
|
CenterX,
|
|
CenterY,
|
|
LeftTopX,
|
|
LeftTopY,
|
|
RightBottomX,
|
|
RightBottomY,
|
|
AspectRatio,
|
|
Rectangularity,
|
|
GrayValue,
|
|
Width,
|
|
Height,
|
|
RedPercentage,
|
|
GreenPercentage,
|
|
BluePercentage,
|
|
RotRectArea
|
|
};
|
|
|
|
class ContourGf {
|
|
|
|
private:
|
|
|
|
int contourPerimeter; //
|
|
int contourArea; //
|
|
cv::Point contourCenter; //
|
|
cv::Point leftTop;
|
|
cv::Point rightBottom;
|
|
|
|
public:
|
|
|
|
ContourGf()
|
|
{
|
|
// TODO Auto-generated constructor stub
|
|
memset(&contourCenter,0,sizeof(cv::Point));
|
|
memset(&leftTop,0,sizeof(cv::Point));
|
|
memset(&rightBottom,0,sizeof(cv::Point));
|
|
contourPerimeter=0;
|
|
contourArea=0;
|
|
|
|
}
|
|
|
|
ContourGf(int contourPerimeter,
|
|
int contourArea,
|
|
cv::Point& contourCenter,
|
|
cv::Point& leftTop,
|
|
cv::Point& rightBottom)
|
|
{
|
|
|
|
this->contourPerimeter = contourPerimeter;
|
|
this->contourArea = contourArea;
|
|
this->contourCenter = contourCenter;
|
|
this->leftTop = leftTop;
|
|
this->rightBottom = rightBottom;
|
|
|
|
}
|
|
|
|
public:
|
|
|
|
int getContourPerimeter()
|
|
{
|
|
return contourPerimeter;
|
|
}
|
|
|
|
void setContourPerimeter(int contourPerimeter)
|
|
{
|
|
this->contourPerimeter = contourPerimeter;
|
|
}
|
|
|
|
int getContourArea()
|
|
{
|
|
return contourArea;
|
|
}
|
|
|
|
void setContourArea(int contourArea)
|
|
{
|
|
this->contourArea = contourArea;
|
|
}
|
|
|
|
cv::Point getContourCenter()
|
|
{
|
|
return contourCenter;
|
|
}
|
|
|
|
void setContourCenter(cv::Point& contourCenter)
|
|
{
|
|
this->contourCenter = contourCenter;
|
|
}
|
|
|
|
void setContourCenter(int x, int y)
|
|
{
|
|
this->contourCenter.x=x;
|
|
this->contourCenter.y=y;
|
|
}
|
|
|
|
cv::Point getLeftTop()
|
|
{
|
|
return leftTop;
|
|
}
|
|
|
|
void setLeftTop(cv::Point& leftTop)
|
|
{
|
|
this->leftTop = leftTop;
|
|
}
|
|
|
|
void setLeftTop(int x, int y)
|
|
{
|
|
this->leftTop.x=x;
|
|
this->leftTop.y=y;
|
|
}
|
|
|
|
cv::Point getRightBottom()
|
|
{
|
|
return rightBottom;
|
|
}
|
|
|
|
void setRightBottom(cv::Point& rightBottom)
|
|
{
|
|
this->rightBottom = rightBottom;
|
|
}
|
|
|
|
void setRightBottom(int x, int y)
|
|
{
|
|
this->rightBottom.x=x;
|
|
this->rightBottom.y=y;
|
|
}
|
|
|
|
};
|
|
|
|
#endif
|