QVector<QVector<QPoint>> qContours(contours.size()); for (size_t i = 0; i < contours.size(); i++) { qDebug() << QStringLiteral("你好%1").arg(contours.size()); QVector<QPoint> qPoints(contours[i].size()); for (size_t j = 0; j < contours[i].size(); j++) { QPoint point(contours[i][j].x, contours[i][j].y); qPoints[j] = point; qDebug() << QStringLiteral("你好%1,%2").arg(contours[i][j].x).arg(contours[i][j].y); } qContours[i] = qPoints; qDebug() << QStringLiteral("wo%1").arg(qContours.size()); }中qContours和contours内容完全一致吗
时间: 2024-04-05 19:35:52 浏览: 91
不完全一致。在代码的开头,定义了一个空的QVector<QVector<QPoint>>类型的变量qContours,它的大小等于contours的大小,即包含了所有的轮廓。在代码的执行过程中,对于每个轮廓,它的所有点被转换成QPoint类型,并存储在一个QVector<QPoint>中,然后这个QVector<QPoint>被存储在qContours的相应位置。因此,qContours中的元素是由QPoint构成的QVector,而contours中的元素是由cv::Point构成的std::vector。两者的数据类型不同,但它们的内容是相同的。
相关问题
可以转为qvector<qvector<qpoint>>吗
可以的。将每个Point类型的向量转换为QVector<QVector<QPoint>>类型的向量,可以使用以下代码:
```cpp
vector<vector<Point>> contours;
// 调用 findContours 函数得到 contours
QVector<QVector<QPoint>> qContours(contours.size());
for (size_t i = 0; i < contours.size(); i++) {
QVector<QPoint> qPoints(contours[i].size());
for (size_t j = 0; j < contours[i].size(); j++) {
QPoint point(contours[i][j].x, contours[i][j].y);
qPoints[j] = point;
}
qContours[i] = qPoints;
}
```
这里使用了QVector和QPoint类,需要包含头文件<QVector>和<QPoint>。
if (variant.canConvert<QVector<SP104>>()) { const QVector<SP104>& vec = variant.value<QVector<SP104>>(); // do something with the int vector name_para="SP104"; qDebug()<<"SP104 is suceess"<<endl; parse_fit->insert_map(name_para,recive_time,name,vec); }
这段代码的作用是检查一个 QVariant 对象 `variant` 是否可以转换为 QVector<SP104> 类型,如果可以,则将其转换为 QVector<SP104> 对象,并将其插入到一个名为 `name` 的 map 中。
具体而言,这段代码会首先调用 QVariant 对象的 `canConvert` 函数,检查其是否可以转换为 QVector<SP104> 类型。如果可以,就调用 `value` 函数将其转换为 QVector<SP104> 对象,并将其赋值给一个常量引用 `vec`。然后,将 `name`、`recive_time`、`name_para` 和 `vec` 作为参数,调用 `parse_fit` 对象的 `insert_map` 函数,将数据插入到一个名为 `name_para` 的 map 中。
需要注意的是,在调用 `insert_map` 函数之前,你需要确保已经正确地包含了这个函数的定义,或者已经在头文件中声明了这个函数。同时,为了将数据插入到 map 中,你需要确保已经正确地包含了 map 头文件,并创建了一个名为 `parse_fit` 的 map 对象。
阅读全文