基于深度模型的印章检测(c++)
效果展示:
有点:
(1)快速(几十毫秒级别);
(2)精度高;
int main()
{
std::string imagePath;
// 提示用户输入图像路径
std::cout << "请输入图像路径: ";
std::getline(std::cin, imagePath); // 使用getline以支持路径中的空格
// 读取图像
Mat src = imread(imagePath);
if (src.empty())
{
printf("can not open ...\n");
system("pause");
return 0;
}
vector<cv::Rect> sealRects;
SealDetect(src, sealRects);
int thickness = std::max(2, std::min(src.cols, src.rows) / 300); // 线条粗细为图像最小边长的 1/100
for(int i = 0; i < sealRects.size(); i++)
rectangle(src, sealRects[i], Scalar(0, 255, 0), thickness, LINE_8, 0);
imwrite("result.jpg", src);
int screenWidth = GetSystemMetrics(SM_CXSCREEN)/3;
int screenHeight = GetSystemMetrics(SM_CYSCREEN)/3;
// 计算缩放比例
double scale = std::min(static_cast<double>(screenWidth) / src.cols, static_cast<double>(screenHeight) / src.rows);
// 计算新的图像大小
Size newSize(static_cast<int>(src.cols * scale), static_cast<int>(src.rows * scale));
// 调整图像大小
Mat resizedImage;
resize(src, resizedImage, newSize);
// 显示调整后的图像
imshow("Seal Detection", resizedImage);
waitKey(0); // 等待用户按键
system("pause");
return 1;
}
可以加q号沟通690899868
程序下载:
https://download.csdn.net/download/MyLove_VC/90238649?spm=1001.2014.3001.5501