如果我有一个带alpha通道的QImage,我怎样才能创建一个新的QImage被剪裁到不透明区域的边界框?如何将QImage裁剪到其不透明区域?
3
A
回答
1
我发现了另一个(在C++),这是否SO回答:
Does Qt have a way to find bounding box of an image?
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))
但如果有这样做更好/更快的方式,将是巨大的。
+0
是的,它会。你的功能很好。也许只要翻译成C++就足够了... – patrickkidd 2017-03-17 04:23:49
1
你试图实现的是图像处理的一部分。这不是QImage中的标准操作。您必须遍历像素并计算边界框。 我建议你使用cv libs因为它们对于这样的操作很好。
相关问题
- 1. 使用php删除透明区域(裁剪透明)使用php
- 2. 裁剪区域
- 3. 不裁剪选定区域
- 4. C# - 裁剪透明/空白
- 5. InlineUIElement不尊重TextBlock的裁剪区域
- 6. JWindow区域不透明
- 7. 用载波来裁剪透明像素
- 8. 裁剪区域与iOS中的选定区域不同?
- 9. 如何将具有透明度的QImage放到剪贴板上供其他应用程序使用?
- 10. 将旋转的QPainter剪辑绘制到QImage的不正确区域
- 11. 如何用透明洞将图像裁剪成圆而不会丢失透明度?
- 12. Threejs将裁剪应用到对象的特定区域
- 13. QSGTexture上的透明QImage
- 14. 如何用Qt中的非透明图形项控制裁剪?
- 15. Java:创建有洞的裁剪区域?
- 16. 在opencv中裁剪矩形区域
- 17. 画布中的多个裁剪区域?
- 18. 添加背景裁剪画布区域
- 19. 在不透明区域包含NULL值
- 20. 裁剪而不是裁剪
- 21. Python PIL - 具有不透明度> 0的所有PNG区域都将其不透明度设置为1
- 22. 如何嵌入YouTube视频的裁剪区域
- 23. 如何在Java中裁剪一些图像区域?
- 24. 如何从WinForm pictureBox中的图像裁剪多边形区域?
- 25. 如何基于黑暗区域/噪音裁剪图像?
- 26. 如何设置剪裁矩形或区域
- 27. 如何使用形状来定义裁剪区域?
- 28. 如何使用pdf.js裁剪PDF页面的矩形区域
- 29. 如何通过选择区域来裁剪UIImage
- 30. NumPy/OpenCV 2:如何裁剪非矩形区域?
图像在“边框”旁边是否有透明的图块? – 2012-08-09 17:23:35
不,它没有。但不透明区域的边界不是矩形(但是它是封闭的)。 – dmd 2012-08-10 18:09:38