A. *_*dry 7 python opencv connected-components
cv2.connectedComponentsWithStats与白底黑字相比,是否必须通过黑底白字的图像?做一个和另一个我得到不同的结果。
示例代码:
import os
import cv2
root = r'pth/to/img'
fl = r'img.png'
src = os.path.join( root, fl )
img = cv2.imread( src, 0 )
img_inv = cv2.bitwise_not( img )
cv2.imshow( 'Black-on-White', img )
cv2.waitKey(0)
cv2.imshow( 'White-on-Black', img_inv )
cv2.waitKey(0)
bw_nlbls, bw_lbls, bw_stats, _ = cv2.connectedComponentsWithStats( img )
wb_nlbls, wb_lbsl, wb_stats, _ = cv2.connectedComponentsWithStats( img_inv )
bw = 'Black-On-White'
wb = 'White-On-Black'
print( bw )
print( '-'*len(bw) )
print()
print('Number of Components: ', bw_nlbls)
print()
print( wb )
print( '-'*len(wb) )
print()
print('Number of Components: ', wb_nlbls)
Run Code Online (Sandbox Code Playgroud)
输出:
黑白
黑底白字

Black-On-White
--------------
Number of Components: 3
White-On-Black
--------------
Number of Components: 6
Run Code Online (Sandbox Code Playgroud)
我假设输出:
对于黑白图像,黑色为背景,白色为前景,3 个分量分别为背景、数字周围的白色和数字 4 内的白色。
对于黑白图像,黑色仍然是背景和白色前景,但现在有 6 个组件(背景和五个数字)。
似乎合乎逻辑,但我们可以将其添加到未来用户的文档中吗?我们是否可以添加功能以允许用户选择他们想要表示为背景的“颜色”(白色或黑色)?
连接的组件实际上适用于背景-前景属性,其中黑色被视为背景,白色被视为前景。这实际上是一个标准,如果你问我的话,这似乎也是很自然的。如果用户想要对黑色(背景)区域进行连通分量标记,则用户有责任进行适当的反转。
| 归档时间: |
|
| 查看次数: |
5011 次 |
| 最近记录: |