为了账号安全,请及时绑定邮箱和手机立即绑定

将图像中的像素值编辑为 numpy 数组

将图像中的像素值编辑为 numpy 数组

慕村225694 2021-06-09 17:46:44
我正在阅读这样的图像:img = np.array(Image.open(test_dir + image_name))我想要做的是在数组中找到一个值高(250 或更多)的区域并将其减少 10:rows = img.shape[0]cols = img.shape[1]pixel = []for x in range(0,rows):    for y in range(0, cols):        if x >= 122 and x <= 160 and y >= 34  and y <= 71:            if img[x,y]>= 250:                img[x,y] = img[x,y] -10                pixel.append(img[x,y])所以我根据未更改的图像查看的区域应该是一个从 (122, 34) 到 (160,71) 的框,并且它应该有一些超过 250 的像素,但不知何故,当我运行此代码时,我最终什么也没在像素列表中
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

对于更紧凑的解决方案,您可以尝试


roi = img[122:161, 34:72]

pixel = roi[roi >= 250]

roi[roi >= 250] -= 10


查看完整回答
反对 回复 2021-06-16
?
暮色呼如

TA贡献1853条经验 获得超9个赞

如果您的图像是灰度的,则可以这样做。


inds = np.where(img>=250)

inds = inds[(inds.T[0]>=122)&(inds.T[0]<=160)&(inds.T[1]>=34)&(inds.T[1]<=71)]

img[inds]-=10


查看完整回答
反对 回复 2021-06-16
  • 3 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号