От основ к практике OpenCV (1) — чтение, отображение и запись изображений

OpenCV
От основ к практике OpenCV (1) — чтение, отображение и запись изображений

Это 8-й день моего участия в Gengwen Challenge.Подробности о мероприятии, пожалуйста, проверьте:Обновить вызов

Расскажите, что такое компьютерное зрение, какое удобство OpenCV предоставляет нам для обработки изображений и его основных приложений, и, наконец, познакомьтесь с представлением изображений и тем, как его установить.

что такое компьютерное зрение

Во-первых, компьютерное зрение — это дисциплина, изучающая, как заставить машины «видеть», так что же такое «видение»? То есть наблюдение за окружающей средой для задач машинного зрения, таких как классификация изображений, распознавание объектов, отслеживание и измерение.

002.png

Как научная дисциплина компьютерное зрение изучает связанные теории и технологии, пытаясь построить системы искусственного интеллекта, которые могут получать «информацию» из изображений или многомерных данных.

Что такое OpenCV

005.png

OpenCVПолное название библиотеки компьютерного зрения с открытым исходным кодом — это кроссплатформенная библиотека компьютерного зрения. OpenCV был инициирован и разработан корпорацией Intel и находится в свободном доступе для коммерческого и исследовательского использования.

  • Кроссплатформенность
  • Поддерживает такие языки, как C, C++ и Python.
  • проект с открытым исходным кодом
  • легко установить

OpenCV можно использовать для разработки обработки изображений в реальном времени, компьютерного зрения и распознавания образов.

002.png

Как компьютеры представляют изображения

Сегодняшние компьютеры обычно используют 32 бита для представления цветов, а 32 бита одинаково разделены на четыре компонента, то есть 8 бит на компонент. Затем красный красный, зеленый зеленый и синий синий, каждый из которых имеет 8-битное пространство для представления, уровень, который можно представить, составляет 2 к 8-й мощности, который возможен 256. Мы видим, что изображение представляет собой плоскость с шириной и высотой. Положение пикселей может быть представлено положением ширины и высоты. Этот пиксель имеет RGB и каналы, а также можно понять как глубину. На самом деле, изображение состоит из 3-мерная матрица, поэтому представляющие изображения, на самом деле относительно простые и грубые, и фактически не содержит никакой семантической информации, поэтому она практически увеличивает сложность компьютерных задач.

006.jpeg

Установить OpenCV

Во-первых, вам нужно установить среду python, рекомендуется установить python 3.6 или выше, а затем выполнить следующую команду

pip install opencv-python
Рекомендуемая установка

Рекомендуется сначала установить среду conda, а затем установить версию openCV для Python в среде conda.

Opencv чтение изображения

图

В OpenCV мы используем больше матриц (Matrix) для изменения изображения. Фактически мы видим, что картинка представляет собой двумерную матрицу, составленную из пикселей по строкам и столбцам, и каждый пиксель содержит каналы R, G и B для сохранения информации о картинке.

Когда дело доходит до матриц, мы должны упомянуть Numpy, полезную библиотеку Python для работы с массивами. Все данные структуры массива OpenCV можно преобразовать в структуру массива, предоставленную в Numpy.

007.png

007.png

читать изображение

МожетОфициально предоставить ресурсы для загрузкиСкачать картинки.

008.jpeg

На самом деле за этим изображением Лены как отраслевым стандартом обработки изображений стоит определенная история.Сегодня это не в центре внимания.Причина выбора этого изображения заключается в том, что изображение умеренно смешивает детали, сглаженные области, тени и текстуры, так что оно может быть очень хорошим.Протестируйте различные алгоритмы обработки изображений.

cv2.imread('lena.jpg',0)

Первый параметр передает изображение для чтения, а второй параметр управляет режимом загрузки изображения.

  • cv2.IMREAD_COLOR (1) Указывает, что загруженное изображение сохраняет цвет
  • cv2.IMREAD_GRAYSCALE (0) означает, что загруженное изображение сохраняет только оттенки серого
  • cv2.IMREAD_UNCHANGED (-1) Загрузить изображение, чтобы сохранить такие каналы, как прозрачность
img = cv2.imread('lena.jpg',0)
print(img)
[[163 162 161 ... 170 154 130]
 [162 162 162 ... 173 155 126]
 [162 162 163 ... 170 155 128]
 ...
 [ 43  42  51 ... 103 101  99]
 [ 41  42  55 ... 103 105 106]
 [ 42  44  57 ... 102 106 109]]

Когда метод imread не находит файл изображения, он возвращает None вместо массива

openCV прочитать изображение

cv2.imshow('image',img)
cv2.waitKey(1)
cv2.destroyWindows()

Я просто вывожу изображение в виде массива.Вы также можете использовать метод imshow для вывода изображения на экран.Однако изображение будет мигать только с помощью imshow.Вы можете использовать waitKey, чтобы добавить для отображения изображения до тех пор, пока не пользователь нажимает кнопку Метод Параметр 5000 означает, что окно изображения будет закрыто через 5 секунд, если пользователь не выполнит никаких действий.

图

написать изображение

cv2.imwrite('lena_copy.png',img)