Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

TypeError: img is not a numpy array, neither a scalar

I have data similar to the following :

10-0 = [
    [1915, 387, 1933, 402],
    [3350, 387, 3407, 391],
    [842, 505, 863, 521],
 ]

10-0 being the credentials of an image(to find the path) and the values inside are coordinates of a box or rectangle each, the formula i'm working on is cv2.rectangle(img, (x1, y1), (x2, y2), (255,0,0), 2) , note that 10-0 is the key of one element of a dictionary.

My code :

import cv2
    for key in my_dict:
        folder_blueprint = re.findall(r'\d+', key)
        img = PATH_TO_SOURCE+str(folder_blueprint[0])+'-'+str(folder_blueprint[1])+'.png'
        for line in key:
            line_number = 0
            cv2.rectangle(img,( my_dict[key][line_number][0],my_dict[key][line_number][1]),(my_dict[key][line_number][2],my_dict[key][line_number][3]),(255,0,0),2)
            # cv2.imread(img)
            line_number = line_number + 1
        cv2.imwrite(FULL_PATH_TO_DESTINATION, img)
        cv2.imshow(FULL_PATH_TO_DESTINATION, img)
        k = cv2.waitKey(0)  # 0==wait forever

What i finally want is the image with red boxes around the regions of interest in a new destination folder leaving the original image intact. And i have referred to similar questions on here with the same error message but they weren't helpful to my case.