После того, как система машинного зрения построена, откалибрована и подтверждена, что она может захватывать изображения проверяемой цели, вы можете сосредоточиться на разработке различных алгоритмов анализа, обработки и распознавания образов. Чтобы разработать алгоритм с высокой точностью и надежностью и повысить скорость его выполнения, как правило, необходимо заранее выполнить операции над всем изображением или некоторыми пикселями, чтобы сделать размер или форму изображения более подходящим для компьютерной обработки. Над изображением также иногда выполняются арифметические и логические операции для удаления шума или повышения контрастности изображения. Эти ранние операции или операции с изображениями не только улучшат изображение в пространственной области, но также значительно повысят скорость выполнения и эффективность последующих алгоритмов.
1. Манипуляции с пикселями
Pixel Manipulation обычно используется перед различными алгоритмами обработки изображений, чтобы подготовиться к плавному выполнению алгоритма. Операции с пикселями, в частности, включают в себя: чтение или установку определенного значения пикселя в изображении, изменение всех значений пикселей в области, чтение или изменение значений пикселей построчно или столбец по столбцу и т. д. На следующем рисунке показаны функции манипулирования пикселями, предоставляемые NI Vision, расположенные в LabVIEW.Видение и движение→Утилиты зрения→Управление пикселямив палитре функций.
Описание и использование функции можно найти в справочной документации:
Используйте LabVIEW для изменения значения пикселя отдельной точки, значения пикселя строки и столбца, значения пикселя, покрываемого сегментом линии, и фактического примера заполнения изображения, чтобы углубить понимание и применение манипулирования пикселями.
Идея разработки программы заключается в следующем:
- Программа начинает читать изображение Лены из файла, после чего IMAQ SetPixelValue изменяет значение пикселя с координатами (200, 200) на 255 (белый) и использует IMAQ GetPixelValue для чтения измененного значения, чтобы подтвердить, что изменение успешный.
- IMAQ SetRowCol может изменять данные строки или столбца в изображении. Поскольку параметр строки Row имеет значение FALSE, он будет использовать значение в массиве пикселей (U8) для изменения данных столбца с номером 50.
- В программе всего два элемента массива Pixels (U8), на данный момент при замене изменяются только первые два пикселя.
- IMAQ GetRowCol может считывать измененное значение 50 пикселей столбца, чтобы подтвердить результат операции изменения пикселя.
- IMAQ GetPixelLine может возвращать значения пикселей, охватываемые сегментом линии, определяемым двумя точками (10, 10) и (60, 60).Эти возвращаемые значения пикселей заменяются подмножеством замены массива с подмассивом, содержащим 100 элементов, а затем снова используется как IMAQ SetPixelLine Входные данные для изменения значения пикселя, покрываемого сегментом линии.
- В программе IMAQ Filllmage заполнит изображение черным цветом (значение пикселя равно 0).Из-за использования маскирования изображения будет заполнена только часть, покрытая ненулевыми пикселями в маскируемом изображении. По умолчанию маска изображения будет помещена в исходную точку изображения, которое ее использует.Программа не использует значение по умолчанию, а использует IMAQ SetOffset для перемещения верхнего левого угла маски изображения в положение (220, 220) на изображении, которое его использует.
Схема программы следующая:
Эффект работы программы следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
2. Работа с изображением в градациях серого
Манипуляции с изображением относятся к геометрическим преобразованиям, таким как сдвиг/перенос, поворот, масштабирование, развертка и повторная выборка, симметрия, извлечение) определенной области изображения и т. д. Большинство функций обработки изображений не изменяют значения пикселей изображения напрямую, а только реорганизуют или интерполируют их в пространстве.
На следующем рисунке показаны функции обработки изображений, предоставляемые NI Vision, расположенные в LabVIEW.Зрение и движение→Утилиты зрения→Управление изображениямив палитре функций.
Описание и использование функции можно найти в справочной документации:
2.1. Перевод и вращение изображения
Перевод изображения означает перемещение всех точек изображения на определенное расстояние по горизонтали или вертикали. Если предположить, что начальные координаты пикселя равны (x, yo), соответствующие координаты после перемещения равны (x, yt), а величины смещения изображения в направлениях x и y равны xoffset и yoffset соответственно, Есть:
Поворот изображения означает, что пиксели изображения принимают определенную точку за точку поворота и поворачиваются на определенный угол против часовой стрелки (угол положительный) или по часовой стрелке (угол отрицательный). В большинстве случаев операция поворота изображения использует центральную точку изображения в качестве точки поворота. Подобно переводу изображения, вращение также приводит к изменению размера изображения. Некоторые пиксели изображения могут выйти за пределы исходного диапазона изображения. В этом случае эти пиксели можно отбросить, чтобы сохранить исходный размер изображения, или увеличить размер изображения, чтобы он соответствовал повернутому изображению, как показано на следующем рисунке:
Затем используйте LabVIEW для реализации перевода и поворота изображения.Идеи дизайна программы следующие:
- Программа сначала выделяет в памяти буферы Src и Dst для исходного изображения и процесса обработки изображения и считывает из файла изображения изображение Лены размером 512×512.
- При использовании IMAQ Shift для последующего панорамирования изображения, поскольку Dst-буфер связан с параметром ImageDst VI, операция панорамирования сохранит исходные данные изображения без изменений, но просто переместит изображение на 80 пикселей по горизонтали и вертикали на основе его данных. , Сохраняется в буфере Dst.
- ВП заполняет оттенки серого областей, которые становятся пустыми при операции преобразования, до 200 на основе значения параметра Replace Value.
- IMAQ Rotate в программе поворачивает изображение по часовой стрелке на 30° (-30°). Для пикселей, значения которых невозможно найти на исходном изображении из-за поворота, ВП использует билинейную интерполяцию для вычисления их значений, для пустых областей для заполнения используется значение по умолчанию 0.
- Поскольку размер повернутого изображения изменится, некоторые данные изображения могут быть перемещены за пределы размера исходного изображения, поэтому вам необходимо использовать параметр «Сохранить размер», чтобы выбрать, следует ли сохранить исходный размер изображения (True) или сохранить все изображение. данные (ложь). ).
Схема программы следующая:
Из результатов работы программы видно, что если вы решите сохранить размер изображения без изменений, данные, повернутые за пределами исходного изображения, будут отброшены; а если вы решите сохранить все данные изображения, размер повернутого изображения будет больше. чем размер исходного изображения. Эффект следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
2.2 Уменьшение и увеличение изображения
Масштабирование изображения с использованием IMAQ Resample, IMAQ Expand и IMAQ Extract 2. Идеи дизайна программы следующие:
- Программа сначала выделяет в памяти буферы Src и Dst для исходного изображения и процесса обработки изображения и считывает из файла изображения изображение Лены размером 512×512.
- Сразу после этого IMAQ Resample и IMAQ Extract 2 уменьшают размер изображения до 64×64 соответственно. Хотя оба ВП уменьшают изображение до одинакового размера, используемые ими методы и эффект уменьшенного изображения совершенно разные.
- IMAQResample заполняет данные в новом изображении на основе метода интерполяции кубическим сплайном при уменьшении изображения, в то время как IMAQ Extract2 извлекает строки и столбцы данных через каждые 8 строк и 8 столбцов.
- После завершения уменьшения изображения программа использует IMAQ Resample и IMAQ Expand для увеличения уменьшенного изображения до 512×512.
Схема программы следующая:
Эффект работы программы следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
2.3, преобразование симметрии изображения
Nl Vision использует симметрию IMAQ для реализации различных типов преобразования симметрии изображения. Разработчикам нужно только выбрать тип симметричного преобразования в соответствии со своими потребностями, и им не нужно заботиться о деталях различных матричных вычислений, чтобы получить желаемые результаты. Следует отметить, что операции первичной и вторичной диагональной симметрии применимы только к изображениям с одинаковой длиной и шириной.
Схема программы следующая:
Эффект работы программы следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
2.4 3D визуализация
Nl Vision также предоставляет функцию отображения изображения IMAQ 3DView VI, которая отображает данные изображения в градациях серого в 3D. Когда он отображает данные изображения, он использует плоскость OXY для представления координат положения пикселя и ось Z для представления пикселей.Реализация программы выглядит следующим образом:
Эффект работы программы следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
3. Работа с изображением в градациях серого
Операция с изображением относится к выполнению алгебраических операций, таких как сложение, вычитание, умножение, деление и т. д., на одном или нескольких изображениях, а также (И), Или (Или), Не (Не), Логические операции, такие как исключающее или (Исключающее или), сравнение двух изображений (Compare) и процесс нахождения по модулю (Modulo) и нахождение абсолютного значения разницы (AbsoluteDifference). Их можно использовать не только для покадрового сравнения во время получения изображения, коррекции световых сдвигов фона изображения, идентификации объектов на соединенных или перекрывающихся изображениях, сравнения между несколькими изображениями и моделью изображения и т. д., но также для порогового или маскирование изображений, регулировка яркости или контрастности и т. д. Кроме того, фильтрация изображений может быть достигнута путем усреднения нескольких изображений одной и той же сцены.
На следующем рисунке показаны функции работы с изображениями, предоставляемые Nl Vision, которые расположены в LabVIEW.Видение и движение→Обработка изображений→Операторв подпалитре Функции.
Описание и использование функции можно найти в справочной документации:
Процесс работы с изображением следует следующим правилам:
1. Когда обрабатываются два изображения в градациях серого, пиксели в изображениях обрабатываются точка за точкой один за другим.
2. Когда изображение в градациях серого обрабатывается с определенной константой, все пиксели изображения обрабатываются с этой константой.
3. Когда цветное изображение RGB работает с изображением в градациях серого или определенной константой, изображение в градациях серого или константа оперируют с каждым компонентом изображения RGB.
4. При работе с двумя изображениями RGB работают соответствующие компоненты.
Кроме того, когда два изображения, задействованные в операции, относятся к разным типам, тип изображения, полученного после операции, будет соответствовать типу изображения с большей битовой глубиной. Например, когда изображение в градациях серого типа U8 добавляется к изображению в градациях серого типа I16, результирующий тип изображения будет I16; когда изображение в градациях серого вычитается с определенной константой, тип результирующего изображения остается изображением в градациях серого; когда изображение или константа в градациях серого типа U8 работает с цветным изображением RGB32, полученное изображение по-прежнему является цветным изображением RGB32; когда RGB32 работает с изображением RGB64, будет получено изображение типа RGB64.
3.1 Шумоподавление среднего изображения
Чаще всего добавление изображений используется для реализации наложения изображений. С помощью этой функции объекты с разных изображений могут быть объединены в одно изображение. Добавление изображения и константы увеличивает общую яркость изображения. Кроме того, функция пространственной фильтрации изображения может быть реализована с использованием операции добавления изображения. В частности, несколько изображений одной и той же сцены могут быть усреднены для эффективного уменьшения аддитивного случайного шума. Такая обработка необходима для изображений, передаваемых на большие расстояния по аналоговой связи, таких как межзвездные изображения с космических аппаратов.
Затем операция добавления изображения используется для уменьшения среднего шума изображения.Идеи дизайна программы заключаются в следующем:
- Сначала программа выделяет в памяти два буфера, средний и временный.
- Затем перечислите все имена файлов изображений .png в папке, где сохранено изображение шума, и прочитайте первое изображение в буфер среднего значения.
- После этого цикл For считывает другие зашумленные изображения во временный буфер одно за другим и добавляет их к изображениям в среднем. Результат сложения заменит исходное изображение в буфере усреднения, а его ссылка на изображение будет передана в следующий цикл в сдвиговом регистре. В последующих циклах изображения, вновь считанные во временный буфер, будут продолжать добавляться к результатам предыдущих вычислений в буфере среднего значения до тех пор, пока все изображения не будут сложены вместе.
- После завершения цикла просто разделите результат добавления изображений в буфер Average на общее количество изображений, чтобы получить средний результат изображений.
- Поскольку результат расчета может превышать диапазон типов данных исходного изображения в процессе добавления изображения, перед запуском цикла тип изображения в буфере усреднения, в котором сохраняется результат расчета, преобразуется из U8 в I16, а затем преобразуется после расчет завершен исходный тип.
Реализация программы выглядит следующим образом:
Запустите программу и наблюдайте за отображением изображения во время работы программы.Нетрудно обнаружить, что усредненное изображение содержит значительно меньше шума, чем исходное изображение.Эффект следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
3.2. Устраните неисправность вспышки ночного видения.
Операция вычитания изображения, также известная как операция различия изображений, часто используется для удаления нежелательных наложенных шаблонов или для обнаружения изменений сцены или движущихся объектов. В промышленной среде, если фон изображения можно контролировать, комбинация дифференциальной операции и пороговой обработки может быстро и эффективно создать систему машинного зрения. Если вычесть изображения одной и той же сцены, снятые в разное время, или изображения одной и той же сцены в разных диапазонах, можно получить различие изображений. Аберрация изображения может использоваться для динамического наблюдения, обнаружения и сопровождения движущихся целей, устранения фона изображения и распознавания целей. Несоответствие также можно использовать для удаления ненужных наложений на изображениях, выделения важной информации в смешанном изображении.
Затем операция вычитания изображения используется для извлечения точки неисправности вспышки прибора ночного видения.Солдаты часто используют приборы ночного видения для выполнения таких действий, как разведка и прицеливание в ночное время.Во избежание неправильной оценки проводится испытание оборудования на стабильность необходимо проводить для обеспечения надежности производственного оборудования, то есть в нормальных условиях работы выходное изображение может оставаться стабильным в течение достаточно длительного времени без черных точек и засветок. Чтобы извлечь точки вспышки, программа вычитает их после фильтрации высокочастотного шума на двух изображениях. Для облегчения наблюдения программа также инвертирует оттенки серого изображения в результате расчета с помощью IMAQ Inverse.
Реализация программы выглядит следующим образом:
Эффект следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…
3.3 Улучшение изображения человеческого скелета
Операции умножения и деления изображения можно использовать для расширения или сжатия уровня серого изображения для достижения преобразования уровня серого. Обычно используется для умножения или деления изображения на константу для настройки оттенков серого изображения.
Умножение также можно использовать для маскирования или извлечения частей изображения, типичным применением которого является извлечение изображений путем маскирования. Во время извлечения значение изображения маски устанавливается равным 1 для области, которую необходимо сохранить, и значение изображения маски устанавливается равным 0 для области, которую необходимо подавить. Кроме того, поскольку операции свертки и корреляции во временной области соответствуют операциям произведения в частотной области, операции умножения также используются в качестве трюка для реализации обработки свертки или корреляции.
Операцию разделения изображения можно рассматривать как результат умножения одного изображения после инверсии на другое и использовать не только для изменения уровня серого изображения, но и для обнаружения различия между изображениями. Операция абсолютного значения изображения вычисляет абсолютное значение соответствующих пикселей в двух изображениях после вычитания, а операция деления вычисляет изменение соотношения соответствующих пикселей, поэтому деление изображения часто называют «преобразованием отношения».
Далее используйте умножение для улучшения изображения скелета человека.Скелет человека на исходном изображении плохо видно.Необходимо умножить изображение на константу, чтобы расширить его уровень серого, тем самым повысив яркость и контрастность изображения. Идея разработки программы заключается в следующем:
- Сначала программа выделяет буфер Src для чтения изображения и считывает данные изображения в градациях серого из файла PET.tif.
- Во избежание переполнения данных во время операции умножения программа преобразует тип считываемого изображения в градациях серого из U8 в I16 и выделяет буфер типа I16 для сохранения результата расчета.
- IMAQ Multiply умножает исходное изображение типа I16 на константу 4, повышая уровень серого в 4 раза.
- После этого IMAQ Cast lmage преобразует результат расчета в тип U8 и отобразит его в элементе управления изображением.
- Все выделенные буферы освобождаются перед завершением программы. Из результатов работы программы видно, что умноженное изображение, очевидно, легче наблюдать, чем исходное изображение.
Реализация программы выглядит следующим образом:
Эффект следующий:
Скачать программу см.:скачать.CSDN.net/download/нет 0…