gpt4 book ai didi

qt - Qt 有办法找到图像的边界框吗?

转载 作者:行者123 更新时间:2023-12-04 07:45:14 26 4
gpt4 key购买 nike

给定一个 .png具有透明背景的图像,我想找到非透明数据的边界框。使用嵌套 forQImage.pixel() 循环痛苦地缓慢。 Qt 中是否有这样做的内置方法?

最佳答案

如果 pixel() 对您来说太慢,请考虑更有效的按行数据寻址,给定 QImage p:

int l =p.width(), r = 0, t = p.height(), b = 0;
for (int y = 0; y < p.height(); ++y) {
QRgb *row = (QRgb*)p.scanLine(y);
bool rowFilled = false;
for (int x = 0; x < p.width(); ++x) {
if (qAlpha(row[x])) {
rowFilled = true;
r = std::max(r, x);
if (l > x) {
l = x;
x = r; // shortcut to only search for new right bound from here
}
}
}
if (rowFilled) {
t = std::min(t, y);
b = y;
}
}

我怀疑它会比这更快。

关于qt - Qt 有办法找到图像的边界框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com