python下使用openCV3,如何在一幅灰度图中,为所有灰度为某特定值的点赋另一灰度值

情况是,某个图像处理算法的输出图像(格式:Unit8matrix)会把坏值像素标记成特定值,而我想把这些坏值填充一下。不能使用for循环遍历图像,因为要处理连续视频,fo... 情况是,某个图像处理算法的输出图像(格式:Unit8 matrix)会把坏值像素标记成特定值,而我想把这些坏值填充一下。
不能使用for循环遍历图像,因为要处理连续视频,for循环效率太低。想问cv2或者numpy有没有封装好的函数之类的?其实能实现找到所有灰度值等于X的像素点(的索引)就可以了。
不知道np.where()能不能实现?如果能的话还请指教一下该怎么写。
展开
 我来答
哈哈呵呵你好7
2019-03-21 · TA获得超过1626个赞
知道大有可为答主
回答量:2238
采纳率:79%
帮助的人:255万
展开全部

你好,我觉得用np.where是可以实现的,下面是相关的实现代码:

import cv2
import numpy as np
image = np.zeros((400,400,3), dtype="uint8")
raw = image.copy()
image[np.where((image==[0,0,0]).all(axis=2))] = [255,255,255]
cv2.imshow('Test0', image)
lower_black = np.array([0,0,0], dtype = "uint16")
upper_black = np.array([70,70,70], dtype = "uint16")
black_mask = cv2.inRange(image, lower_black, upper_black)
image[np.where((image == [0,0,0]).all(axis = 2))] = [155,255,155]
black_mask[np.where(black_mask == [0])] = [155]
cv2.imshow('Test', image)
cv2.imshow('Test2', raw)
cv2.imshow('Test3', black_mask)
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式