如何用python分别提取出某个像素的rgb值并写入一个一行三列的数组中。

求图片色彩平均值:result=np.zeros((3))sumC=np.zeros((3))foriinrange(2*radius):forjinrange(2*ra... 求图片色彩平均值:
result = np.zeros( (3) )
sumC = np.zeros( (3) )
for i in range(2*radius):
for j in range(2*radius):
if((cx-radius+i)>0 and (cy-radius+j)>0 and i<radius and j<radius):
sumC[0,:,:] = sumC[0,:,:] + img[cx,cy,R]
sumC[:,0,:] = sumC[:,0,:] + img(cx,cy,G)
sumC[:,:,0] = sumC[:,:,0] + img(cx,cy,B)
请帮忙指出上面的错误 。 img为imread得来的图片。
展开
 我来答
迂堂派
推荐于2017-09-14 · 知道合伙人软件行家
迂堂派
知道合伙人软件行家
采纳数:335 获赞数:1062
西南大学电子与通信工程专业。热爱 IT,喜欢阅读~

向TA提问 私信TA
展开全部

可以使用 Python Image Library 做,load() 函数会返回一个对象,这个对象我们可以把它当作一个二维数组对待,而数组中存放的就是点的 RGB 值,可以很容易地访问到任何像素点的 RGB 值:

from PIL import Image
 
# 可以支持很多种图片格式.
im = Image.open("your_picture.jpg") 
pix = im.load()
 
# 获得图片的尺度,可以用于迭代
print im.size 
 
# 获得某个像素点的 RGB 值,像素点坐标由 [x, y] 指定
print pix[x,y] 
 
# 设置 [x, y] 点的 RGB 的值为 value 
pix[x,y] = value
bdwisyou7d
推荐于2018-11-02 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1069万
展开全部
numpy我用得少。
你上面的程序第一个是缩进有问题,这一句for i in range(2*radius):
第二个问题是cx,cy没有定义?
第三个问题,i,j的循环中没有使用step,这样一个浮点数,可能会按1的step来走,结果应该会与想象的有差距。
第四个问题。img后面有些是[]有些又是()。这个显然有问题
第五个问题,R,G,B应该是被引号括起来的。你直接写个字符在这里,显然也应该不对。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
張員瑛
2013-03-17 · TA获得超过154个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:248万
展开全部
我用的代码片段你参考一下。
def pj(region):
(w,h)=region.size
t=[0,0,0,0]
for i in range(2,w-2):
for j in range(2,h-2):
(r,g,b,a)=region.getpixel((i,j))
t[0]+=r
t[1]+=g
t[2]+=b
t[3]+=b
t[0]=t[0]/float(w-4)/(h-4)
t[1]=t[1]/float(w-4)/(h-4)
t[2]=t[2]/float(w-4)/(h-4)
t[3]=t[3]/float(w-4)/(h-4)
# #print dir(region)
# for i in range(w):
# for j in range(h):
# region.putpixel((i,j),(t[0],t[1],t[2],t[3]))
return t
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87b2a52
2013-03-17 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
你先说报什么错了啊
追问
我其实是不知道怎么从imread的结果中取出rgb的值。 最后的报错是
sumC[1,:,:] = sumC[1,:,:] + img(cx,cy,R)
IndexError: too many indices

我觉得我这么取rgb本身就有错误。求指导。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式