4

アルファチャンネルを持つ QImage がある場合、不透明領域のバウンディングボックスにトリミングされた新しい QImage を作成するにはどうすればよいですか?

4

2 に答える 2

1

これを行う別のSO回答(C ++で)を見つけました:

Qtには画像のバウンディングボックスを見つける方法がありますか?

def bbox(p):
    bounding-box-of-an-image
    l = p.width()
    t = p.height()
    r = 0
    b = 0

    for y in range(p.height()):
        rowFilled = False
        for x in range(p.width()):
            if qAlpha(p.pixel(x, y)):
                rowFilled = True
                r = max(r, x)
                if l > x:
                    l = x
        if rowFilled:
            t = min(t, y)
            b = y
    return QRect(QPoint(l, t), QPoint(r, b))

しかし、これを行うためのより良い/より速い方法があれば素晴らしいでしょう。

于 2012-08-09T16:45:21.033 に答える
1

あなたが達成しようとしているのは、画像処理の一部です。これは QImage の標準操作ではありません。ピクセルを調べて、バウンディング ボックスを計算する必要があります。そのような操作に適している cv libs coz を使用することをお勧めします。

于 2012-08-10T05:25:37.137 に答える