J'ai un morceau de code comme ci-dessous :
import cv2
import numpy as np
import operator
from functools import reduce
image = cv2.imread("<some image path>")
bgr = np.int16(image)
h, w, _ = image.shape
mask = np.zeros((h, w), np.uint8)
# Get all channels
blue = bgr[:,:,0]
green = bgr[:,:,1]
red = bgr[:,:,2]
rules = np.where(reduce(operator.and_, [(red > 100), (red > green), (red > blue)]
# Create mask using above rules
mask[rules] = 255
### Then use cv2.findContours ...
Ce morceau de code ne s'exécute pas aussi vite que je l'espérais. Je pense que je peux le rendre plus rapide en appliquant toutes les conditions une par une, c'est à dire :
rule_1 = np.where(red > 100)
rule_2 = np.where(red[rule_1] > green)
rule_3 = np.where(red[rule_2] > blue)
mask[rule_3] = 255
La méthode ci-dessus peut-elle accélérer mon code ? Et comment le faire ? Merci beaucoup !