Маски для изображения с OpenCV (Python) - PullRequest
0 голосов
/ 22 мая 2018

Я сделал этот код, который создает 2 маски.При применении результат будет следующим:

Исходное изображение original

Вывод output

import cv2
import numpy as np

frame = cv2.imread('image.jpg')

h, w = frame.shape[:2]

upper_value = int(h / 10) * 5
lower_value = -(int(h / 10) * 3)

upper_mask = cv2.rectangle(frame, (0, 0), (w, upper_value), (0, 50, 255), -1)
lower_mask = cv2.rectangle(frame, (0, upper_value + int(h / 10) * 5), (w, upper_value + int(h / 10) * 2), (0, 50, 255), -1)

Я знаю код, это совсем не хорошо, но делаю свою работу.Как я могу улучшить это?

Спасибо

1 Ответ

0 голосов
/ 22 мая 2018

Вот несколько предложений:

import cv2
import numpy as np

frame = cv2.imread('image.jpg')

h, w = frame.shape[:2]
mask_color = (0, 50, 255) # isolate a repeating constant

# avoid setting a variable that is used only once, only if you REALLY need it to improve readability
# that's why `upper_value` and `lower_value` were removed. 
# BTW, `lower_value` was unused in your code.

upper_mask = cv2.rectangle(frame, (0, 0), (w, int(0.5 * h)), mask_color, -1)
lower_mask = cv2.rectangle(frame, (0, h), (w, int(0.7 * h)), mask_color, -1)
...