如何使用numpy.compress方法减少图像部分?(numpy + scikit-图像)

阿连德

嗨,我使用了示例图像phantom.png。我正在使用numpy + skimage库进行一些操作,经过一些修改后,最后一个练习要求:

将中心点的大小压缩50%,并绘制最终图像。

这些是我之前要做的步骤。

我读了这张图片

img = imread(os.path.join(data_dir, 'phantom.png'))

然后应用以下使其变为黑色和白色

img[np.less_equal(img[:,:,0],50)] = 0
img[np.greater_equal(img[:,:,0],51)] = 255

在给定坐标下拍摄了几片图像(黑点)

img_slice=img.copy() 
img_slice=img_slice[100:300, 100:200]
img_slice2=img.copy() 
img_slice2=img_slice2[100:300, 200:300]

现在翻转它们

img_slice=np.fliplr(img_slice)
img_slice2=np.fliplr(img_slice2)

并将它们放回图像副本中

img2=img.copy()
img2[100:300, 200:300]=img_slice 
img2[100:300, 100:200]=img_slice2

这是最终(“压缩”)练习之前的结果图像:

在此处输入图片说明

然后,我被要求使用该numpy.compress方法“减少”黑点

使用“压缩”方法后的预期结果是以下图像(屏幕截图),其中黑点减少了50%:

但是我不知道如何numpy.compress在图像或图像切片上使用方法来获得结果,甚至无法接近,我所得到的只是图像中看起来像是裁剪或拉伸部分的大块。

在此处输入图片说明

我将不胜感激numpy.compress,因为它对方法在该问题上的工作方式有帮助,但即使在可行的情况下也可行。

马克·谢切尔

您似乎可以进行裁剪和提取,但是只是停留在压缩方面。因此,裁剪中间部分并将其另存为im,我们将在下一步中对其进行压缩。用白色填充您裁切出的区域。

现在,压缩裁剪的部分。为了减少50%,您需要采用交替的行和交替的列,因此:

# Generate a vector alternating between True and False the same height as "im"
a = [(i%2)==0 for i in range(im.shape[0])]

# Likewise for the width
b = [(i%2)==0 for i in range(im.shape[1])]

# Now take alternate rows with numpy.compress()
r = np.compress(a,im,0)

# And now take alternate columns with numpy.compress()
res = np.compress(b,r,1)

最后放回res原始图像,相对于剪切位置,将其宽度和高度偏移一半。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用scikit-image进行图像过滤?

使用遮罩和Python scikit图像裁剪图像

如何在 python(scikit、numpy、pill)中缩放(重新缩放)图像?

如何使用Scikit-image将透明png图像与另一个图像合并

如何使用 numpy 标记图像以进行训练

Scikit图像的CIELAB颜色范围?

如何计算scikit图像中超像素的平均颜色

使用scikit-image对图像进行去模糊处理

使用scikit-image将RGB图像转换为LAB

使用Scikit-image从图像中提取属性

使用scikit-learn分割阵列后,图像会失真

提取的圆的像素坐标(使用 scikit 图像)偏离在图像上绘制的圆的实际位置(使用 openCV)

Scikit图像:对图像对象中的细胞进行计数的正确方法

如何在Python cv2,scikit图像和mahotas中从Internet URL读取图像?

如何使用Scikit-Image库从RGB图像中提取绿色通道?

我如何使用scikit image在python中的图像上裁剪圆的扇区

使用 Numpy 创建图像补丁

正确使用numpy的卷积与图像

使用numpy进行图像翻译

如何在 Scikit-learn 中使用 NumPy 数组

计算numpy数组某部分的均值(图像)

代码中的错误。Scikit 图像,Spyder

Scikit图像行进立方体

如何使用Numpy / Keras对填充的图像的部分进行零填充?

如何使用numpy为图像的所有相对白色部分创建遮罩?

读透明图像作为白色背景scikit图像蟒

如何使用SciPy / NumPy查找并去除图像中的白色斑点?

如何使用numpy数组切片遮罩图像灰度

如何在 numpy.load() 中使用图像 jpg