我在你的帖子中纠正了你的缩进错误,但你有两个小错误:
1.)语法错误np.任何()
2.)指定新的像素值时,您会进行比较,但这对值没有影响。在
附有更正代码和注释:import cv2
import numpy as np
img = cv2.imread('image.png')
rows,cols,bands = img.shape
print rows,cols,bands
for i in xrange (rows):
for j in xrange (cols):
k = img[i,j]
#corrected syntax for comparison of multiple components
if np.all(k==[0,0,0]):
# Use = instead of == in next line, you do not want to compate
img[i,j]=[120,0,255]
cv2.imshow('r',img)
cv2.waitKey(0)
不过最后一句话:我只是直接回答了您的问题,在单个像素上循环根本不是您应该使用OpenCV选择的解决方案。在
虽然这看起来更复杂,但在OpenCV中实现这一点的更充分(更快)方法如下:
^{pr2}$