working with dict : incrementing dict dynamically

Sven svenito at gmail.com
Mon Mar 11 16:53:39 CET 2013


On 11 March 2013 15:23, inshu chauhan <insideshoes at gmail.com> wrote:

> I am trying to create a dictionary with a key and its values seraching
> from a data set. But something is going wrong. This is the first time I am
> working with dicts.
>
> My code is :
>
> import cv
> def Computesegclass(segimage):
>     num_pixel = 0
>         for y in xrange(0, segimage.height):
>         for x in xrange(0, segimage.width):
>
>             if segimage[y,x] == (0.0, 0.0, 0.0):
>                 continue
>             else:
>                 color = segimage[y,x]
>                 blue = color[0]
>                 green = color[1]
>                 red = color[2]
>                 region_num = blue + 256 * green + 65536 * red
>                 print region_num
>                 segments = dict({region_num : num_pixel})
>                 if region_num == region_num:
>                     num_pixel = +1
>                 print segments
>
> if __name__== "__main__":
>     segimage =
> cv.LoadImageM("Z:/Segmentation/segmentation_numbers_00000.tif",
> cv.CV_LOAD_IMAGE_UNCHANGED)
>     print segimage
>     Computesegclass(segimage)
>
>
> here I am traversing through an image which is 3000 x 3000. for each pixel
> I calculate a region number. What I am trying to do is increase the
> num_pixel by 1 if that pixel falls in the same region which is identified
> by region_num. How can I do it in dict created ?
>
> Thanx in Advance
>
>
If I am understanding you correctly you want to accumulate a pixel count
for each region. I would suggest a default dict, and that you do something
like

from collections import defaultdict
def ComputeSegClass(seqimage):
    segments = defaultdict(int)
<snip>
    if region_num == region_num:
        segments[region_num] += 1

But as John mentioned, your comparison here will always be true, so you
will need to fix this to test for your case.

-- 
./Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130311/16e894e2/attachment.html>


More information about the Python-list mailing list