首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找每种颜色中每列的平均BGR值

查找每种颜色中每列的平均BGR值
EN

Stack Overflow用户
提问于 2017-06-08 06:42:01
回答 0查看 215关注 0票数 0

我们正在编写一个看起来像96孔板的代码。我们有每口井的中心坐标。然后,我们创建了一个for循环,它允许我们获得每个井的BGR值。但是,我们需要以某种方式组织每一列,并对这些值进行平均。我相信我们从第一个循环中得到了一个错误。在这个例子中,函数似乎只经历了第一个循环,而不是第二个循环。当我运行它时,我得到了3个值(假设是bgr值),然后继续推算平均值。它似乎也重复了一些平均值。任何建议,我可以改变,或错误的第一眼。我将提供下面的图像和图例。

指向图像的链接为:http://imgur.com/Eb87ZxW (图像已缩放,因此坐标可能不适用于上传的图像) http://imgur.com/P4tPPXX

代码语言:javascript
复制
import cv2, numpy as np, sys

#filename will be taken from the command line and process as the image variable
#filename= sys.argv([1])
img = cv2.imread('greenandblueplate.jpg')

#centroids
wells = [img[110,97], img[184,97], img[254,97], img[324,97], img[396,96], img[466,97], #columnH 12-7
         img[537,96], img[607,97], img[680,96], img[750,97], img[820,96], img[891,97], #columnH 6-1
         img[110,165],img[184,165],img[254,165],img[324,165],img[396,165],img[466,165], #columnG 12-7
         img[537,165],img[607,165],img[680,165],img[750,166],img[820,165],img[891,165], #columnG 6-1
         img[110,235],img[184,235],img[254,235],img[324,235],img[396,235],img[466,235], #columnF 12-7
         img[537,235],img[607,235],img[680,235],img[750,235],img[820,235],img[891,235], #columnF 6-1
         img[110,305],img[184,305],img[254,305],img[324,305],img[396,305],img[466,305], #columnE 12-7
         img[537,305],img[607,305],img[680,305],img[750,305],img[820,305],img[891,305], #columnE 6-1
         img[110,373],img[184,373],img[254,373],img[324,373],img[396,373],img[466,373], #columnD 12-7
         img[537,373],img[607,373],img[680,373],img[750,372],img[820,373],img[891,373], #columnD 6-1
         img[110,442],img[184,442],img[254,442],img[324,442],img[396,442],img[466,442], #columnC 12-7
         img[537,442],img[607,442],img[680,442],img[750,443],img[820,442],img[891,442], #columnC 6-1
         img[109,511],img[184,511],img[254,511],img[324,511],img[396,511],img[466,511], #columnB 12-7
         img[537,512],img[607,512],img[680,511],img[750,511],img[820,511],img[891,511], #columnB 6-1
         img[109,582],img[184,582],img[254,582],img[324,581],img[396,582],img[466,582], #columnA 12-7
         img[537,581],img[607,582],img[680,582],img[750,581],img[820,582],img[891,582]] #columnA 6-1

bAvgFilledWells = []
gAvgFilledWells = []
rAvgFilledWells = []

#filtering out the centroids that are not needed
#and getting the bgr values for the first color on the plate
for center in wells:
    if center[1] > 124:
        if center[0] < 360:
            b = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 0]
            g = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 1]
            r = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 2]
            bAvg = np.mean(b)
            gAvg = np.mean(g)
            rAvg = np.mean(r)

            bAvgFilledWells.append(bAvg)
            gAvgFilledWells.append(gAvg)
            rAvgFilledWells.append(rAvg)
            print(center)
            print("For the first color, average value for blue is:", bAvg)
            print("For the first color, average value for green is:", gAvg)
            print("For the first color, average value for red is:", rAvg)


bAvgFilledWells2 = []
gAvgFilledWells2 = []
rAvgFilledWells2 = []

#filtering out the centroids that are not needed
#and getting the bgr values for the second color on the plate        
for center in wells:
    if center[1] > 124:
        if center[0] > 360 and center[0] < 642:
            b2 = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 0]
            g2 = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 1]
            r2 = img[center[0]-4: center[0]+5, center[1]-4: center[1]+5, 2]
            bAvg2 = np.mean(b2)
            gAvg2 = np.mean(g2)
            rAvg2 = np.mean(r2)

            print(center)
            print("For the second color, average value for blue is:", bAvg2)
            print("For the second color, average value for green is:", gAvg2)
            print("For the second color, average value for blue is:", rAvg2)
            bAvgFilledWells2.append(bAvg2)
            gAvgFilledWells2.append(gAvg2)
            rAvgFilledWells2.append(rAvg2)
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44423907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档