Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 为什么ConnectedThresholdImageFilter类不标记阈值内的像素?_Python_Itk_Simpleitk - Fatal编程技术网

Python 为什么ConnectedThresholdImageFilter类不标记阈值内的像素?

Python 为什么ConnectedThresholdImageFilter类不标记阈值内的像素?,python,itk,simpleitk,Python,Itk,Simpleitk,我试图使用ConnectedThresholdImageFilter类来分割二值图像的“C”白色区域('slice87.jpg')。其想法是选择一个位于该区域内的种子值,并仅添加强度为255(阈值254和256之间)的相邻像素 但是,我的代码生成的图像的每个像素都设置为0: 而不是(通过photoshop手动编辑): 我的种子值是(x,y)=(115,35)img.GetPixel(115,35)返回255 import SimpleITK as sitk img = sitk.Read

我试图使用ConnectedThresholdImageFilter类来分割二值图像的“C”白色区域('slice87.jpg')。其想法是选择一个位于该区域内的种子值,并仅添加强度为255(阈值254和256之间)的相邻像素

但是,我的代码生成的图像的每个像素都设置为0:

而不是(通过photoshop手动编辑):

我的种子值是(x,y)=(115,35)
img.GetPixel(115,35)
返回255

import SimpleITK as sitk

img = sitk.ReadImage('slice87.jpg')
seeds = [(115,35)]

output = sitk.ConnectedThreshold(image1=img,
                                 seedList = seeds,
                                 lower = 254,
                                 upper = 256,
                                 replaceValue = 255)
sitk.WriteImage(output, 'output.jpg')

输入图像的类型是什么?我怀疑它的类型是
sitkUInt8
,在这种情况下,值256不能表示为输入图像的像素类型,并且会导致整数溢出。上下参数构成一个包含指定边界的闭合区间。您应该将
upper
参数指定为255或
Cast
将您的图像转换为其他像素类型。

您使用的是本文中的图像还是其他图像?如果是后者,由于JPEG压缩的损失,强度可能不太正确。实际图像是以hdr/img分析格式保存的3D二进制图像。我将slice87保存为jpg,以便将其上载到stackoverflow。白色区域的强度范围为251-255,因此压缩无法解释为什么所有像素都设置为0。