QWidget* MainWindow::addImage(const QImage &arg) try {
if (arg.isNull()) { return nullptr; }
/*转化为灰度图*/
auto varGrayImage=
arg.convertToFormat(QImage::Format_Grayscale8);
/*用opencv包装数据*/
cv::Mat varInput(varGrayImage.height(),
varGrayImage.width(),
CV_8UC1,
const_cast<uchar *>(varGrayImage.constBits()),
varGrayImage.bytesPerLine());
/*二值化*/
cv::threshold(varInput,varInput,125.5,255,cv::THRESH_BINARY);
/*查找边界*/
std::vector<std::vector<cv::Point>> varContours;
cv::findContours(varInput,varContours,
cv::RETR_EXTERNAL,
cv::CHAIN_APPROX_SIMPLE);
if (varContours.empty()) { return nullptr; }
/*找到最大边界*/
std::sort(varContours.begin(),varContours.end(),
[](auto &l,auto &r) {return l.size()>r.size(); });
varContours.resize(1);
auto & varContour=varContours[0];
if (varContour.empty()) { return nu
opencv convexityDefects 凸包缺陷描述
最新推荐文章于 2024-09-09 10:48:35 发布
本文介绍了OpenCV中convexityDefects函数的使用,该函数用于检测图像轮廓的凸包缺陷。结果是一个包含四列的数据表,分别表示凸包起点索引、终点索引、最远点索引以及最远点到凸包的浮点距离。该功能在处理图像轮廓分析时十分有用。
摘要由CSDN通过智能技术生成