В ходе работы встала задача выделить соседствующие пиксели по цвету, однако я никак не додумаюсь, как это сделать. Если как в одной строке вполне понятно, то алгоритм действий по вертикали для меня пока загадка.
Есть ли какой-нибудь проект с открытым исходным кодом не слишком большого размера, чтобы его можно было подсмотреть?
В итоге, разобрался сам. Это можно сделать применив рекурсивную функцию, осуществляющую осмотр соседних клеток, игнорируя обработанные.
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;
}
}
Уже осмотренные клетки заносятся в ignore
. Это контейнер вида множество, именно его применение позволяет избежать зацикливания на повторах. Полные исходный код выложил в свободный доступ в этом репозитории.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В WinAPI есть функция SetConsoleOutputCP(1251) которая меняет кодировку консолиЕсть ли аналог данной функции в Qt ?
Есть 4 метода Clock();Data();Temp();Hum();Кусочек кода надо сделать без delay()