C++ 如何仅使用Qt按颜色高亮显示图像区域?

C++ 如何仅使用Qt按颜色高亮显示图像区域?,c++,image,qt,vector,computer-vision,C++,Image,Qt,Vector,Computer Vision,我需要使用Qt(没有OpenCV)通过颜色高亮显示相邻像素。如果,就像在一行中一样,它是非常清楚的,那么垂直动作算法对我来说仍然是一个谜。有没有一个开源项目不是太大而无法窥探 结果,我自己就明白了。这可以通过应用一个递归函数来完成,该函数检查相邻的单元格,而忽略已处理的单元格 void Worker::fill(QPoint point) { QColor pointColor = QColor(image.pixel(point)); if (ignore.contains(p

我需要使用Qt(没有OpenCV)通过颜色高亮显示相邻像素。如果,就像在一行中一样,它是非常清楚的,那么垂直动作算法对我来说仍然是一个谜。有没有一个开源项目不是太大而无法窥探


结果,我自己就明白了。这可以通过应用一个递归函数来完成,该函数检查相邻的单元格,而忽略已处理的单元格

void Worker::fill(QPoint point) {
    QColor pointColor = QColor(image.pixel(point));
    if (ignore.contains(point)) {
        return;
    } else if (compare(templColor, pointColor)) {
        ignore.insert(point);
        image.setPixelColor(point.x(), point.y(), fillColor);
        QList<QPoint> bounding = border(point);
        QList<QPoint>::iterator iter;
        for (iter = bounding.begin(); iter != bounding.end(); iter++) {
            fill(*iter);
        }
    } else {
        return;
    }
}
void Worker::fill(QPoint点){
QColor pointColor=QColor(image.pixel(point));
if(忽略.包含(点)){
返回;
}else if(比较(模板颜色、点颜色)){
忽略。插入(点);
setPixelColor(point.x(),point.y(),fillColor);
QList边界=边界(点);
迭代器iter;
for(iter=bounding.begin();iter!=bounding.end();iter++){
填充(*iter);
}
}否则{
返回;
}
}
已检查的单元格输入到
ignore
set容器中。它用于防止单元重新处理时出现循环。完整的源代码在存储库中免费提供