Python opencv将视频中的所有黑色像素替换为白色

Python opencv将视频中的所有黑色像素替换为白色,python,opencv,Python,Opencv,我们如何将视频中的所有黑色替换为白色 我试过了,但没用 进口cv2 将numpy作为np导入 从matplotlib导入pyplot作为plt cap=cv2.VideoCapture0 第1部分: ret,img=cap.read 去除所有黑色并用白色替换 img[np.whereimg=[0,0,0]。allaxis=2]=[255255] 下面的代码片段演示如何仅使用Numpy将BGR图像中的所有黑色像素替换为白色。您可以将其应用于视频的每一帧 将numpy作为np导入 a=np.zero

我们如何将视频中的所有黑色替换为白色

我试过了,但没用

进口cv2 将numpy作为np导入 从matplotlib导入pyplot作为plt cap=cv2.VideoCapture0 第1部分: ret,img=cap.read 去除所有黑色并用白色替换 img[np.whereimg=[0,0,0]。allaxis=2]=[255255]
下面的代码片段演示如何仅使用Numpy将BGR图像中的所有黑色像素替换为白色。您可以将其应用于视频的每一帧

将numpy作为np导入 a=np.zeros100100,3,dtype=np.uint8原始图像。这里我们使用黑色图像,但您可以将其替换为视频帧。 白色=np.FULL100100325,数据类型=np.uint8白色图像 a=np,其中[:,:]=[0,0,0],白色,a这是我们替换黑色像素的地方。 请注意,这将只替换真正的黑色像素。在现实世界的视频中,你需要做一些阈值处理作为预处理步骤,因为完美的黑色像素是非常罕见的

编辑:

要影响特定值下的暗像素,但不一定是完全黑色,请使用阈值:

我们将所有值小于100的像素变成黑色像素。 这仅适用于灰度图像。 a=cv2.CVT颜色,cv.COLOR\U BGR2GRAY将图像转换为灰度 ret,a=cv2.thresholda,100255,cv2.threshold_to zero使灰度像素小于100黑色。
<>这只适用于灰度图像,但也许你应该考虑将图像从BGR转换成灰度级,如果你的目标是检测黑色像素将其变为白色。遥控它,用白色替换它?@Scorpion这就是我在回答中提到阈值的原因。查看我的编辑了解更多详细信息。