Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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
用OpenCV在python中显示孔洞填充图像_Python_Numpy_Opencv_Image Processing_Scipy - Fatal编程技术网

用OpenCV在python中显示孔洞填充图像

用OpenCV在python中显示孔洞填充图像,python,numpy,opencv,image-processing,scipy,Python,Numpy,Opencv,Image Processing,Scipy,我正在使用OpenCV在python中进行一些图像分析。我想显示我使用scipy.ndimage.binary_filled_holes填充的图像。在这样做的时候,当我使用cv2.imshow时,我看不到任何显示,所以我使用plt.imshow,看到原始图像中的孔被填满了。我想使用cv2.imshow功能来显示图像。我确实转换了图像,使数据类型为uint8,但仍然没有显示任何内容。任何帮助都将不胜感激 import cv2 import matplotlib.pyplot as plt imp

我正在使用OpenCV在python中进行一些图像分析。我想显示我使用scipy.ndimage.binary_filled_holes填充的图像。在这样做的时候,当我使用cv2.imshow时,我看不到任何显示,所以我使用plt.imshow,看到原始图像中的孔被填满了。我想使用cv2.imshow功能来显示图像。我确实转换了图像,使数据类型为uint8,但仍然没有显示任何内容。任何帮助都将不胜感激

import cv2 
import matplotlib.pyplot as plt
import numpy as np 
import scipy.ndimage

img = cv2.imread('Funky 647.jpg', cv2.IMREAD_GRAYSCALE)   
dst = cv2.fastNlMeansDenoising(img,None,10,7,21) 
ret, thresh2 = cv2.threshold(dst, 40, 255, cv2.THRESH_BINARY) 
hole_filled= np.uint8(scipy.ndimage.binary_fill_holes(thresh2))

# plt.imshow(hole_filled)
cv2.imshow('No Holes', hole_filled) 
cv2.waitKey(0)  
cv2.destroyAllWindows()
通过matplotlib填充孔的图像:


如果您尝试使用
cv2.imshow('No Holes',img)
,会发生什么?i、 e.imshow能正常工作吗?读入图像显示完美。这就是我所困惑的。即使我对图像进行去噪和阈值化处理,cv2.imshow仍然有效。只有在使用ndimage功能后,图像才停止显示。我现在只看到一个黑屏。当你说“什么都没有显示”时,你是指“什么都没有”还是指“一个有黑色图片的窗口显示”?一个有黑色图片的窗口。很抱歉出现歧义。您的二进制填充图像可能在0到1的范围内。如果在0到1范围内,则检查其最小值和最大值。然后将其乘以255,然后转换为uint8如果您尝试
cv2.imshow('No Holes',img)
,会发生什么?i、 e.imshow能正常工作吗?读入图像显示完美。这就是我所困惑的。即使我对图像进行去噪和阈值化处理,cv2.imshow仍然有效。只有在使用ndimage功能后,图像才停止显示。我现在只看到一个黑屏。当你说“什么都没有显示”时,你是指“什么都没有”还是指“一个有黑色图片的窗口显示”?一个有黑色图片的窗口。很抱歉出现歧义。您的二进制填充图像可能在0到1的范围内。如果在0到1范围内,则检查其最小值和最大值。然后将其乘以255,然后转换为uint8