Метод реализации улучшения изображения Opencv

 

opencv — это инструмент улучшения изображений с открытым исходным кодом, в основном используемый для реализации функций улучшения изображений в среде Python. Чтобы реализовать улучшение изображения с помощью opencv, вам необходимо использовать модуль графического интерфейса opencv, как показано на рисунке 1. В opencv есть модуль наборов данных, который в основном используется для операций обработки и визуализации данных, как показано на рисунке 2. Здесь мы будем использовать этот модуль наборов данных для обработки улучшения изображений. Если вы хотите узнать больше об улучшении изображений, вы можете обратиться к нашей предыдущей статье «Как использовать opencv для улучшения изображений?»

  • 1. Создайте новый модуль «Наборы данных».

    Модуль наборов данных — это инструмент визуализации данных, который может выбирать серию изображений с помощью мыши, а затем работать на экране, как показано на рисунке 4. Чтобы использовать модуль наборов данных, вам необходимо зарегистрировать пользователя.Этому пользователю необходимо создать учетную запись и ввести пароль в имя пользователя. Мы создали новое имя пользователя user_datasets и пароль user_password. Мы используем команду set_user для открытия учетной записи. Затем вы можете щелкнуть данные в модуле наборов данных, чтобы обработать их, как показано на рисунке 5. В модуле наборов данных щелкните вкладку «Выбор наборов данных и операции визуализации». Как показано на рисунке 6. Здесь мы выбрали два варианта: «Выбрать набор данных» и «Выбрать операцию визуализации» для обработки данных, как показано на рисунке 7. В диалоговом окне обработки данных мы видим, что перед обработкой имеется вкладка «Предварительная обработка», содержащая множество параметров, как показано на рисунке 8. Обработка улучшения изображения может выполняться с помощью этих параметров, как показано на рисунке 9.

  • 2.Установите данные обработки

    В opencv способ обработки данных — использование функции sobel, как показано на рисунке 3. В функции sobel мы можем установить значение серого и контрастность, и эти два параметра можно изменить напрямую. Если вы хотите использовать функцию выравнивания гистограммы, вы можете использовать следующий код для ее установки: Здесь нам нужно установить параметры в функции sobel. Конкретные параметры показаны на рисунке 4. Здесь мы в основном настраиваем две функции: улучшение и выравнивание гистограммы, как показано на рисунке 5. Здесь мы используем функцию выравнивания гистограммы и выбираем метод выравнивания гистограммы по умолчанию, как показано на рисунке 6. Затем выберите функцию улучшения, здесь мы в основном повышаем контрастность изображения. Мы видим, что между порогом и контрастом добавляется точка, как показано на рисунке 7. Здесь мы устанавливаем два параметра: После передачи вышеуказанных настроек наше изображение можно улучшить. Здесь мы в основном выполняем выравнивание гистограммы и повышение контрастности изображения. Обработанное изображение показано на рисунке 8.

  • 3. Определите классы операций

    В opencv существует множество классов операций, таких как read_palindrome и read_palindromepalindrome в Python, которые реализуют улучшение изображений в наборах данных. Среди этих трех классов операций read_palindrome3 используется для завершения операции сортировки изображений, как показано на рисунке 6. Для операций сортировки модуль наборов данных opencv не имеет возможности напрямую выполнить операцию сортировки, поэтому нам нужно определить класс для завершения операции сортировки изображений. После определения класса read_palindrome3 вам необходимо определить класс с именем read_palindrome1 для завершения операции сортировки изображений.

  • 4. Определите классы реализации

    Мы используем модуль наборов данных для реализации улучшения изображений. Сначала нам нужно определить класс, а затем определить набор классов реализации для реализации определенных нами операций, как показано на рисунке 5. Класс содержит два метода: Метод Dataset(): Получает изображения из файлов изображений и выполняет операции. Метод dataset(): Получите тип данных. Оба метода требуют вызова файла dataset.xml. Вышеупомянутые два класса соответственно представляют два типа данных, с которыми мы хотим работать.Для метода Dataset() его функция заключается в преобразовании файла изображения в объект набора данных и выполнении операции; для метода datasets() его функция — Convert исходные изображения в объекты наборов данных и выполнять операции. Сначала мы определяем в коде два класса, а затем вызываем их.

  • 5. Реализация функций

    Давайте подробно объясним конкретный метод реализации ниже. Во-первых, нам нужно использовать модуль наборов данных opencv, чтобы нарезать исходное изображение с помощью функции labeled_background в этом модуле. В opencv вы можете разрезать изображение через меню «Файл->Разрез», как показано на рисунке 6. При этом следует отметить, что исходное изображение сначала необходимо разрезать, как показано на рисунке 7. Если вы хотите увеличить исходное изображение, вам нужно использовать вкладку «Изображение» в меню «Файл->Увеличить». Затем мы используем функцию «конвейер», предоставляемую opencv, чтобы увеличить нарезанное изображение, как показано на рисунке 8. Здесь следует отметить, что если вы хотите увеличить изображение в два раза по сравнению с его исходным размером, вам необходимо использовать функцию «openpipeline» в разделе «pipeline», чтобы увеличить изображение. Далее мы используем функцию «labeled_background» для выполнения преобразования в оттенках серого нарезанного изображения. Здесь следует отметить, что во избежание проблемы «неравномерности оттенков серого» мы можем отключить опцию преобразования оттенков серого в этой функции. Наконец, мы используем функцию «Выравнивание гистограммы» в меню «Файл-> Улучшить», чтобы улучшить изображение. Здесь следует отметить, что если вы хотите сгладить исходное изображение, вы можете использовать опцию «сглаживание» в функции «openpipeline»; если вы хотите повысить резкость исходного изображения, вы можете использовать опцию «openpipeline». " вариант. Выше приведен соответствующий контент о методе реализации функции улучшения изображения в opencv.

  • 6. Резюме

    При фактическом использовании opencv для улучшения изображений обрабатываемые изображения необходимо обрезать и выровнять по мере необходимости, а затем обработанные изображения сохраняются в виде файлов наборов данных. Если вы хотите реализовать больше функций улучшения изображений, вы можете использовать модуль наборов данных в opencv. Например, вы можете использовать модуль наборов данных для обрезки, выравнивания и поворота различных типов изображений для достижения большего количества функций. Конечно, когда мы используем opencv для обработки изображений, мы также можем использовать другие модули opencv для выполнения операций по улучшению изображений. Например, вы можете использовать модуль matplotlib и модуль fx_matplotlib в opencv в сочетании, а затем реализовать функцию улучшения изображения через модуль наборов данных в opencv.

Ниже приведены несколько часто используемых кодов улучшения изображений OpenCV:

1. Изображение в оттенках серого:
```python
import cv2
img = cv2.imread('image.jpg')
Gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', Gray)
cv2.waitKey( 0)
````
2. Бинаризация изображения:
```python
import cv2
img = cv2.imread('image.jpg')
Gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.thorh(gray) , 127, 255, cv2.THRESH_BINARY)
cv2.imshow('Binary Image', thresh)
cv2.waitKey(0)
````
3. Сглаживание изображения:
````python
import cv2
img = cv2.imread( 'image .jpg')
Blur = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imshow('Размытое изображение', размытие)
cv2.waitKey(0)
```
4. Обнаружение краев изображения:
```python
import cv2
img = cv2.imread('image.jpg')
Gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Edges = cv2.Canny(gray, 100, 200)
cv2. imshow('Edges Image', Edges)
cv2.waitKey(0)
```
5. Выравнивание гистограммы изображения:
```python
import cv2
img = cv2.imread('image.jpg')
Gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY)
equ = cv2.equalizeHist(gray)
cv2.imshow('Equalized Image', equ)
cv2.waitKey(0)
````

Guess you like

Origin blog.csdn.net/qq_42751978/article/details/130789942