Автор оригинала: Adnan Siddiqi.
Недавно я начал играть с OpenCV, библиотекой компьютерного зрения с открытым исходным кодом для обработки изображений. К счастью, есть привязки Python. Больше удачи, что парни, как Адриан, проделали отличный сервис, выпустив обе книги, так и блог на аналогичной теме.
Так о чем все о? Ну, это просто, или я говорю, самая простая демонстрация использования OpenCV для загрузки изображения и нахождение цвета, связанного с этим изображением и показывала представление в веб-приложении на основе колбы. Это не состояние арт-приложения, ни в настоящее время не служат так, как я собираюсь делать, но эй, это всего лишь начало, а не конец. Я не мог найти лучшее оправдание, кроме преобразования моего основного изучения пикселей в продукт (Google! Осторожно !!)
Я не собираюсь int Nitty-Gritty детали как OpenCV, так и колба, и я буду охватывать то, что на самом деле делает приложение.
Приложение состоит из двух частей: веб-приложение, которое используется для хранения изображений из веб и отображения обрабатываемых изображений и их доминирующих цветов, и сценарий командной строки, который запускается на загруженном изображении и извлечении цветовых кодов. Веб-изображение выглядит ниже:
Вы ищите изображения по цветовому коду, и он возвращает результат, что-то вроде ниже:
И вид одного изображения выглядит как:
Давайте обсудим основную часть системы, которая есть, сценарий командной строки, который выполняет основную работу.
def process_image(image_name): color_count = {} print('Processing the image {}'.format(image_name)) path = 'website/static/uploaded_images/' + image_name image = cv2.imread(path) for i in range(image.shape[0]): for j in range(image.shape[1]): (b, g, r) = image[i, j] h_value = rgb2hex(r, g, b) if h_value in color_count: color_count[h_value] += 1 else: color_count[h_value] = 1 return color_count
После импорта компьютерного видения мы читаем изображение с диска, вызывая CV2.imread (). Данные доступны в виде Numpy Array, следовательно, используя его метод формы для поиска деталей, таких как ширина, высота и канал. Кстати, OpenCV хранит данные изображения в формате BGR вместо цветового пространства RGB. Как только данные извлекаются в формате BGR, мы используем пользовательский метод RGB2HEX для преобразования RGB в цвет шестигранства. Затем функция возвращает список словарей состоит из цветового кода в Hex, а его частота, которую мы будем использовать, чтобы найти проценты цвета в изображении. Я также сделал Демо который может видеть ниже.
Заключение
Так что это был основной учебник по обработке изображений в OpenCV. Это не зрелый продукт, поскольку он не может рассказать вам о уникальных цветах на картинке. Это просто говорит вам, что INFORMATIATON на основе цветов пикселей, а не создавая цветовую сегментацию и кластеризацию на основе алгоритма ML.
Надеюсь, я буду обсуждать opencv дальше в ближайшие недели на дальнейших продвинутых тем. Как всегда, код доступен на Github Отказ
Эта статья была первоначально опубликована здесь Отказ