Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将背景颜色更改为黑色_Python_Image_Numpy_Opencv - Fatal编程技术网

Python 将背景颜色更改为黑色

Python 将背景颜色更改为黑色,python,image,numpy,opencv,Python,Image,Numpy,Opencv,我想把这个背景改成原来的黑色。这个背景不是纯黑色的。其值包含1、2或3。使用以下代码后,我得到的背景值非常接近黑色,但不是黑色。虽然背景看起来是黑色的 img = cv2.imread("images.bmp") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray, 0, 255, cv2. THRESH_BINARY) img[thresh == 5] = 0 kernel = cv

我想把这个背景改成原来的黑色。这个背景不是纯黑色的。其值包含1、2或3。使用以下代码后,我得到的背景值非常接近黑色,但不是黑色。虽然背景看起来是黑色的

img = cv2.imread("images.bmp")

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

ret, thresh = cv2.threshold(gray, 0, 255, cv2. THRESH_BINARY)

img[thresh == 5] = 0

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
erosion = cv2.erode(img, kernel, iterations = 1)

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow("image", erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

尝试更换此:

ret, thresh = cv2.threshold(gray, 0, 255, cv2. THRESH_BINARY)

img[thresh == 5] = 0
为此:

# threshold to 10% of the maximum
threshold = 0.10 * np.max(img)
img[gray <= threshold] = 0
#阈值为最大值的10%
阈值=0.10*np.最大值(img)
img[gray尝试替换此:

ret, thresh = cv2.threshold(gray, 0, 255, cv2. THRESH_BINARY)

img[thresh == 5] = 0
为此:

# threshold to 10% of the maximum
threshold = 0.10 * np.max(img)
img[gray <= threshold] = 0
#阈值为最大值的10%
阈值=0.10*np.最大值(img)

据我所知,这应该能解决你的问题

导入cv2
灰色=cv2.imread(r“brain.png”,cv2.imread\u灰度)
thresh_val=5
灰色[灰色<阈值]=0
除此之外,要当心

ret,thresh=cv2.threshold(灰色,0,255,cv2.thresh\u二进制)

基本上将整个图像设置为255,因为第二个参数是阈值,高于阈值的每个像素都设置为第三个值,即255。

据我所知,这应该可以解决您的问题

导入cv2
灰色=cv2.imread(r“brain.png”,cv2.imread\u灰度)
thresh_val=5
灰色[灰色<阈值]=0
除此之外,要当心

ret,thresh=cv2.threshold(灰色,0,255,cv2.thresh\u二进制)

基本上将整个图像设置为255,因为第二个参数是阈值,阈值以上的每个像素都设置为第三个值,即255。

Related posts:,。Related posts:,。这可能还会将感兴趣区域内的一些暗像素设置为黑色,而不仅仅是在背景中。@Georgy肯定会对某些pixels,取决于阈值。@tania true,这通常是正确的。您的输入也是这样吗?您的方法也会遇到同样的问题。如果您想用不同的方式来描述像素值以外的“背景”,您至少应该在问题中提供一些您希望被视为“背景”的细节。如何仅选择背景?这可能还会将感兴趣区域内的一些黑色像素设置为黑色,而不仅仅是背景中的像素。@Georgy当然会对某些像素设置为黑色,具体取决于阈值。@tania一般都是这样。您的输入也是这样吗?您的方法也会遇到同样的问题。如果您希望使用不同的方法在描述像素值之外的“背景”时,你至少应该在问题中提供一些关于什么是“背景”的见解。如何仅选择背景?谢谢,它将背景值更改为0,但也会影响对象。谢谢,它将背景值更改为0,但也会影响对象。