Ask Your Question

# Revision history [back]

### Need to mask the region of interest from RGB image

My job is to mask the hand gestures from the RGB image into a binary image. Only the hand gesture should be shown in the resultant image. I have coded so far

import cv2 import numpy as np from PIL import Image, ImageCms from skimage.draw import rectangle im = image = cv2.imread("E:\JU_V2_DIGIT\RGB_Crop\RGB_P3_G7_5.png") mask = np.ones(shape=im.shape[0:2], dtype="bool") gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)

    # blur the image


blur = cv2.blur(gray, (3, 3))

    # binary thresholding of the image


ret, thresh = cv2.threshold(blur, 210, 255, cv2.THRESH_BINARY) # ret, thresh = cv2.threshold(gray, 127, 255,0) cv2.imshow("Thresholded",thresh) # find contours # contours, hierarchy = cv2.findContours(thresh,2,1) contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # cc cnt = sorted(contours, key=cv2.contourArea, reverse=True) # ROI will be object with biggest contour m = cnt[0] print(m)

# for i in range(len(contours)):

color_contours = (0, 255, 0) # color for contours color = (255, 255, 255) # color for convex hull

# Know the coordinates of the bounding box of the ROI

x, y, w, h = cv2.boundingRect(m) print(x) print(y) print(w) print(h) rr, cc = rectangle(start=(y, y+h), end=(x, x+w-1))

print(rr) mask[rr, cc] = False

# Apply the mask and display the result

im[mask] = 0 cv2.imshow(im) cv2.waitKey(10)

It shows the following error and also the result is not got.

File "C:/Users/Shrouti/PycharmProjects/homography/Scorecard.py", line 39, in <module> mask[rr, cc] = False IndexError: index 256 is out of bounds for axis 1 with size 256

 2 None berak 32993 ●7 ●81 ●312

### Need to mask the region of interest from RGB image

My job is to mask the hand gestures from the RGB image into a binary image. Only the hand gesture should be shown in the resultant image. I have coded so far

import cv2
import numpy as np
from PIL import Image, ImageCms
from skimage.draw import rectangle
im = image = cv2.imread("E:\JU_V2_DIGIT\RGB_Crop\RGB_P3_G7_5.png")
mask = np.ones(shape=im.shape[0:2], dtype="bool")
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) cv2.COLOR_BGR2GRAY)

# blur the image
blur = cv2.blur(gray, (3, 3)) 3))

# binary thresholding of the image
ret, thresh = cv2.threshold(blur, 210, 255, cv2.THRESH_BINARY)
# ret, thresh = cv2.threshold(gray, 127, 255,0)
cv2.imshow("Thresholded",thresh)
# find contours
# contours, hierarchy = cv2.findContours(thresh,2,1)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# cc
cnt = sorted(contours, key=cv2.contourArea, reverse=True)
# ROI will be object with biggest contour
m = cnt[0]
print(m) print(m)

# draw contours and hull points points
# for i in range(len(contours)): range(len(contours)):
color_contours = (0, 255, 0)  # color for contours
color = (255, 255, 255)  # color for convex hull hull

# Know the coordinates of the bounding box of the ROI ROI
x, y, w, h = cv2.boundingRect(m)
print(x)
print(y)
print(w)
print(h)
rr, cc = rectangle(start=(y, y+h), end=(x, x+w-1)) x+w-1))

print(rr)
mask[rr, cc] = False False
# Apply the mask and display the result result
im[mask] = 0
cv2.imshow(im)
cv2.waitKey(10)cv2.waitKey(10)


It shows the following error and also the result is not got.

File "C:/Users/Shrouti/PycharmProjects/homography/Scorecard.py", line 39, in <module>
mask[rr, cc] = False
IndexError: index 256 is out of bounds for axis 1 with size 256256