如果我有一個帶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