Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Reading in images wrong?

So as part of a larger project here I've got this function meant to iterate through a directory of images and then perform some operations on them, mainly the function imageToPoints which is currently commented out for testing purposes but which basically runs a findContour, extracts the points and appends them to a list.

So as it currently stands the code is meant to read in one image at a time, print its name (which it does) then display the image (which it doesn't) suggesting the image isn't being read correctly. I figure I need to include cv.imread somehow but not sure exactly how.

def imagesToList():
# Iterates through directory and processes each image into array

   for img in os.listdir(DIRECTORY + 'TestPhotos/'):
    # Filters out any rogue files (e.g. hidden)
    if img.endswith(".png"):
        camNum, imgNum = os.path.splitext(img)[0].split('img')
        # print 'Camera is ', camNum
        # print 'Image is ', imgNum

        # Correction of values will be different for cams 1 & 2
        if camNum == 1:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        else: #camNum == 2:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        #else: print '''not of format [x]img[y]'''

Returns:

2img1.png
 Traceback (most recent call last):
   File "I2LTEST5.py", line 81, in <module>
    imagesToList()
  File "I2LTEST5.py", line 76, in imagesToList
    cv.imshow('image',img)
TypeError: mat is not a numpy array, neither a scalar

Which suggests to me that the image isn't being read in correctly.

Many thanks for your help and if you're willing to help a university student finish his honours project then your help at my GitHub would be really appreciated!

Reading in images wrong?

So as part of a larger project here I've got this function meant to iterate through a directory of images and then perform some operations on them, mainly the function imageToPoints which is currently commented out for testing purposes but which basically runs a findContour, extracts the points and appends them to a list.

So as it currently stands the code is meant to read in one image at a time, print its name (which it does) then display the image (which it doesn't) suggesting the image isn't being read correctly. I figure I need to include cv.imread somehow but not sure exactly how.

def imagesToList():
# Iterates through directory and processes each image into array

   for img in os.listdir(DIRECTORY + 'TestPhotos/'):
    # Filters out any rogue files (e.g. hidden)
    if img.endswith(".png"):
        camNum, imgNum = os.path.splitext(img)[0].split('img')
        # print 'Camera is ', camNum
        # print 'Image is ', imgNum

        # Correction of values will be different for cams 1 & 2
        if camNum == 1:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        else: #camNum == 2:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        #else: print '''not of format [x]img[y]'''

Returns:

2img1.png
 Traceback (most recent call last):
   File "I2LTEST5.py", line 81, in <module>
    imagesToList()
  File "I2LTEST5.py", line 76, in imagesToList
    cv.imshow('image',img)
TypeError: mat is not a numpy array, neither a scalar

Which suggests to me that the image isn't being read in correctly.

Many thanks for your help and if you're willing to help a university student finish his honours project then your help at my GitHub would be really appreciated!

Reading in images wrong?

So as part of a larger project here I've got this function meant to iterate through a directory of images and then perform some operations on them, mainly the function imageToPoints which is currently commented out for testing purposes but which basically runs a findContour, extracts the points and appends them to a list.

So as it currently stands the code is meant to read in one image at a time, print its name (which it does) then display the image (which it doesn't) suggesting the image isn't being read correctly. I figure I need to include cv.imread somehow but not sure exactly how.

def imagesToList():
# Iterates through directory and processes each image into array

   for img in os.listdir(DIRECTORY + 'TestPhotos/'):
    # Filters out any rogue files (e.g. hidden)
    if img.endswith(".png"):
        camNum, imgNum = os.path.splitext(img)[0].split('img')
        # print 'Camera is ', camNum
        # print 'Image is ', imgNum

        # Correction of values will be different for cams 1 & 2
        if camNum == 1:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        else: #camNum == 2:
            # Correction values here

            zVal = imgNum*numMoves
            #imageToPoints(img)
            print img
            cv.imshow('image',img)

        #else: print '''not of format [x]img[y]'''

Returns:

2img1.png
 Traceback (most recent call last):
   File "I2LTEST5.py", line 81, in <module>
    imagesToList()
  File "I2LTEST5.py", line 76, in imagesToList
    cv.imshow('image',img)
TypeError: mat is not a numpy array, neither a scalar

Which suggests to me that the image isn't being read in correctly.

Many thanks for your help and if you're willing to help a university student finish his honours project then your help at my GitHub would be really appreciated!