python - 更改图像中选定 ROI 的颜色
问题描述
我有如下图所示,
我选择了三个由红色框标记的感兴趣区域 (ROI),我想删除所有黄色并用白色(背景色)替换它们。
我的代码是,
a=np.copy(img)
a[0:0, 50:50][:,:,:]=255
a[130:270, 210:350][:,:,:]=255
a[0:340, 210:390][:,:,:]=255
plt.imshow(a)
但是,结果出乎意料(没有任何变化)。
解决方案
进入控制台后,我可以看到问题所在。
为了模拟你似乎在做什么,我使用了一个形状为 (400, 210, 3) 的随机数组
a = np.random.randint(256, size = (400,210,3))
您的选择
a[0:0, 50:50]
Out[10]: array([], shape=(0, 0, 3), dtype=int64)
0:0 和 50:50 都返回零元素选择,因此有一个具有两个零长度轴的 3D 数组。将此设置为 255 不会影响任何元素。
a[130:270, 210:350]
Out[13]: array([], shape=(140, 0, 3), dtype=int64)
在这种情况下,210:350 超出了长度为 210 的轴的范围。Numpy 再次返回零长度轴。将此设置为 255 无效。
a[0:350, 210:390][:,:,:]
Out[14]: array([], shape=(350, 0, 3), dtype=int64)
轴 1 选择再次超出范围,因此返回轴长度为零的数组。
您将矩形指定为(左上,右下)坐标。需要的是 row_range、column_range。
我猜你想要类似的东西:
a[0:50, 0:50, : ] = 255
a[270:350, 130:210, : ] = 255
a[340:390, 0:210, : ] = 255
轴 0 选择是行(y 轴),轴 1 是列(x 轴)。Axis2 是颜色的 rgb 分量。
高温高压
推荐阅读
- sql - 求总后的平均值
- laravel - 无法从数据库中获取原始降价值
- php - 如何将自定义 php 插入特定的 html 代码(acf 字段/wordpress)?
- python - 揭示缺失值的数据框
- amazon-web-services - 函数内部或外部的s3接口初始化
- c++ - 如何在 QStyledItemDelegate 中设置 QStyleOptionProgressBar 的方向
- java - 如何使用 Release.apk 进行调试?
- javascript - 如何在 JavaScript 中将父级的值放入其子级函数中?
- android - 安装后flutter_vpn示例应用程序崩溃
- c++ - 无法从 wchar_t 构造 wstring