繁体   English   中英

在python opencv中添加像素?

[英]Add pixels in python opencv?

例如,我想计算并添加图像中 100 到 255 之间的像素。 我在想着两个 For。

rows,cols,bands=imgbgr.shape

for i in range(rows):
     for j in range(cols):
         for k in imgbgr[i,j]:
             if 100<=k<=255:
                 #print imgbgr[i,j]
                 suma = np.sum(img[i,j])

print suma    

由于 OpenCV 返回numpy数组,您可以使用布尔切片来更快地完成工作:

>>> import numpy as np
>>> img = np.random.randint(0, 255, (3, 5, 5))
>>> img
array([[[236, 205, 246,  94, 224],
        [ 28, 143, 159, 167,  54],
        [247, 196, 107, 166,  74],
        [194,  97, 219, 104,  15],
        [143, 105, 107, 218, 240]],

       [[ 54, 225, 231,  35,  39],
        [223,  54,   0, 141,  47],
        [ 69,  20, 222, 244, 143],
        [ 34,  60, 174, 155, 243],
        [173,  35, 173,  32, 246]],

       [[229, 247, 102,  47, 208],
        [201, 182, 172, 247, 171],
        [ 86,  76, 182, 144,  58],
        [155, 243,  37, 220,  75],
        [171, 251,  60, 216,  43]]])
>>> cond = (img >= 100) & (img <= 255)
>>> cond
array([[[ True,  True,  True, False,  True],
        [False,  True,  True,  True, False],
        [ True,  True,  True,  True, False],
        [ True, False,  True,  True, False],
        [ True,  True,  True,  True,  True]],

       [[False,  True,  True, False, False],
        [ True, False, False,  True, False],
        [False, False,  True,  True,  True],
        [False, False,  True,  True,  True],
        [ True, False,  True, False,  True]],

       [[ True,  True,  True, False,  True],
        [ True,  True,  True,  True,  True],
        [False, False,  True,  True, False],
        [ True,  True, False,  True, False],
        [ True,  True, False,  True, False]]], dtype=bool)
>>> img[cond]
array([236, 205, 246, 224, 143, 159, 167, 247, 196, 107, 166, 194, 219,
       104, 143, 105, 107, 218, 240, 225, 231, 223, 141, 222, 244, 143,
       174, 155, 243, 173, 173, 246, 229, 247, 102, 208, 201, 182, 172,
       247, 171, 182, 144, 155, 243, 220, 171, 251, 216])
>>> img[cond].sum()
9360

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM