Использование элемента управления PictureBox. Отображение изображений

Обновлен: Ноябрь 2007

На этом занятии вы узнаете, как с помощью элемента управления отображаются рисунки, а также как отобразить рисунок в качестве фонового рисунка формы.

Считается, что изображение стоит тысячи слов, и в действительности многие программы используют рисунки для обмена информацией. Существует несколько способов для отображения рисунков в Visual Basic, стандартный способ заключается в использовании элемента управления .

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

Добавление изображения в качестве ресурса

    В меню Файл выберите Создать проект .

    В диалоговом окне Создание проекта в области Шаблоны выберите Приложение Windows .

    В поле Имя введите Pictures и нажмите кнопку ОК .

    Откроется новый проект Windows Forms.

    В обозревателе решений дважды щелкните узел Мой проект , чтобы открыть конструктор проектов .

    В конструкторе проектов перейдите на вкладку Ресурсы .

    Выберите команду Добавить ресурс , а затем выберите пункт Добавить существующий файл в раскрывающемся списке.

    Откроется диалоговое окно Добавить существующий файл к ресурсам . Если файлы изображений отсутствуют, перейдите в папку, содержащую изображения.

    Выделите файл изображения (с расширением bmp, gif или jpg) и нажмите кнопку Открыть . Для примера лучше выбрать небольшое изображение.

    Изображение добавляется в проект и будет отображаться в окне диспетчера ресурсов .

    Повторите предыдущие два шага, чтобы добавить второе изображение к проекту.

    В меню Файл выберите Закрыть . Если требуется сохранить изменения, нажмите кнопку Да .

Пример 2 - Основы

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

Шаг 1:
Шаг 2:
Шаг 3:
Шаг 4:
Шаг 5:
Шаг 6:
Шаг 7:
Шаг 8:
Шаг 9:
Шаг 10:
Шаг 11:

Считывание и отображение изображения

Очистим рабочее пространство MATLAB, закроем все открытые окна просмотра и закроем все открытые средства Image Tools.

Clear, close all, imtool close all

Считаем и визуализируем полутоновое изображение rice.png.

I = imread("rice.png"); imshow(I)

Полутоновое изображение rice.png

Оценка и аппроксимация значений пикселей фона

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

В примере используется функция imopen, которая выполняет морфологическое раскрытие. При этом также используется функция strel для создания структурного элемента в виде диска с радиусом 15.

Background = imopen(I,strel("disk",15));

Для просмотра и оценки фона используются следующие команды

Figure, imshow(background)

Аппроксимация и просмотр поверхности фона

Используем команду surf для отображения поверхности фона. С помощью команды surf создается цветная параметрическая поверхность, которая дает возможность просматривать прямоугольную область исследуемого изображения. Функция surf работает с данными, которые представлены в формате double. Поэтому, прежде чем применять эту функцию, данные необходимо перевести в формат double.

Figure, surf(double(background(1:8:end,1:8:end))),zlim(); set(gca,"ydir","reverse");

В данном примере отображается только каждый восьмой пиксель по каждому направлению. В приведенном примере существует также возможность установки масштаба и других параметров.

На основе этого можно проводить анализ фона исследуемого изображения.

Создание изображения с равномерным фоном

Для создания изображения с более равномерным фоном, вычтем изображение фона background из исходного изображения I.

I2 = imsubtract(I,background);

Отобразим полученное изображение с более равномерным фоном.

Figure, imshow(I2)


Изображение с равномерным фоном

Улучшение контраста на обрабатываемом изображении

После вычитания, полученное изображение будет иметь более равномерный фон и будет более темным. Используем функцию imadjust для повышения контраста изображения.

I3 = imadjust(I2);

Функция imadjust увеличивает контраст изображения путем растяжения значений интенсивностей динамического диапазона. Для более детальной информации см. описание функции imadjust. Отобразим улучшенное изображение I3.

Figure, imshow(I3);


Изображение после коррекции интенсивностей

Создание бинарного изображения

Бинарное изображение можно создать используя функцию thresholding. Однако функция graythresh автоматически определяет подходящий порог, который используется для преобразования полутонового изображения в бинарное. Функция im2bw выполняет это преобразование.

Level = graythresh(I3); bw = im2bw(I3,level); figure, imshow(bw)


Бинарное изображение

Возвращаемое функцией im2bw бинарное изображение bw представлено в формате logical. В этом можно убедится, воспользовавшись функцией whos. Приложение Image Processing Toolbox использует логические массивы для представления бинарных изображений.

Реакцией системы MATLAB на эту функцию будет

Name Size Bytes Class I 256x256 65536 uint8 array I2 256x256 65536 uint8 array I3 256x256 65536 uint8 array background 256x256 65536 uint8 array bw 256x256 65536 logical array level 1x1 8 double array

В общей сложности используется 327681 элемента, которые занимают 327688 байт.

Определение числа объектов на изображении

После преобразования изображения в бинарное, можно использовать функцию bwlabel для определения числа объектов (зерен риса) на изображении. Функция bwlabel отмечает все компоненты на бинарном изображении bw и возвращает их число в виде значения numObjects.

Bwlabel(bw,4); numObjects ans = 101

Точность результата зависит от некоторых факторов, включая

  1. размер объектов;
  2. соприкасаются ли между собой объекты (в этом случае они могут определятся как один объект);
  3. точность аппроксимации фона.
  4. выбор связности.

Анализ матрицы меток

Для проведения анализа формирования матрицы меток, возвращаемой функцией bwlabel, рассмотрим значения пикселей изображения. Есть несколько путей получения значений пикселей изображения. Например, используя функцию imcrop, можно просматривать небольшие порции изображения. Другой путь состоит в использовании приложения Pixel Region tool для просмотра значений пикселей. Отобразим матрицу меток с использованием функции imshow,

Figure, imshow(labeled); Запуск приложения Pixel Region tool. impixelregion

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

На следующем изображении представлен Image Viewer с прямоугольником Pixel Region, размещенным на границе двух рисовых гранул. Отметим, что значения пикселей фона и отдельных гранул являются одинаковыми. Так, в частности, значение фона равно 0.


Просмотр матрицы средствами Pixel Region Tool

Отображение матрицы меток в виде псевдоцветного индексного изображения

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

Для просмотра матрицы меток используется функция label2rgb. Эта функция применяется при создании палитры, цвета фона и цвета каждого объекта изображения.

Pseudo_color = label2rgb(labeled, @spring, "c", "shuffle"); imshow(pseudo_color);


Представление матрицы меток в виде псевдоцветного изображения

Измерение свойств объектов на изображении

Функция regionprops применяется для измерения свойств объектов в некоторой окрестности изображения и представляет результат в виде массива. Если применить это к изображению с отмеченными компонентами, то создается структура для каждой компоненты.

В этом примере используется функция regionprops для создания структурированного массива, содержащего некоторые основные свойства. Если установить свойствам параметр "basic", тогда функция regionprops возвращает три измеренных параметра: площадь, центроид (или центр масс) и ограничивающий прямоугольник (локальная окрестность). В данном случае ограничивающий прямоугольник представляет собой локальную окрестность, отображающую гранулы риса.

Graindata = regionprops(labeled,"basic")

Система MATLAB выдает такой результат

Graindata = 101x1 struct array with fields: Area Centroid BoundingBox

Для поиска области с 51-м отмеченным компонентом, необходимо найти поле Area field и его 51 элемент в структуре массива graindata.

Graindata(51).Area

В этом случае результат будет таким

Ans = 140

Для поиска наименее возможного прямоугольника и центроида (центра масс) некоторых компонентов используется следующий код:

Graindata(51).BoundingBox, graindata(51).Centroid ans = 107.5000 4.5000 13.0000 20.0000 ans = 114.5000 15.4500

Вычисление статистических свойств объектов изображения

Функции системы MATLAB могут использоваться для вычисления статистических свойств объектов. Сначала используется функция max для поиска наибольшего зерна. (В нашем примере наибольшими являются два зерна риса, которые соприкасаются.)

Max()

Biggrain = find(==404)

Результат представляется в виде

Biggrain = 59

Найдем средний размер всех зерен риса.

Mean()

Результат будет представлен в виде

Ans = 175.0396

Постоим гистограмму распределения зерен риса по их размеру (при этом будем использовать 20 позиций при градации по оси площади). Из гистограммы видно, что основная часть зерен риса имеет площадь от 150 до 250 пикселей.

Используя вьюер карт, вы можете создавать и показывать изображения в Интернете. Автор карты сам решает, как снимки будут представлены на карте.

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

Отображение изображения

Вы можете изменить отображение изображения с помощью предустановленного шаблона или установив комбинацию каналов и параметры растяжки гистограммы.

Использование предустановленного шаблона

При публикации сервиса изображений вы можете заранее установить показ изображения с помощью шаблона. Использовать предустановленный шаблон вы можете в следующих случаях:

  • Четкое отображение данных.
  • Отображение изображений без облаков.
  • Выделение конкретных объектов на изображении.

Для своей карты можно выбрать любой из предустановленных шаблонов.

Использование пользовательского метода отображения

Набор каналов позволит вам указать, какие каналы будут отображены, с помощью схемы RGB. Различные комбинации каналов позволят отобразить снимки с разными цветовыми эффектами. Можно показать изображение в натуральных цветах (красный, зеленый и синий), то есть так, как мы его обычно видим. Другие же комбинации цветов позволят вам выделять различные области: растительность, застроенные территории, воду и т.д.

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

  • Нет – дополнительные преобразования изображения не осуществляются.
  • Минимум-максимум – отображает полный диапазон значений пикселов изображения.
  • Среднеквадратическое отклонение – отображаются значения пикселов, расположенные в пределах диапазона, равного указанному числу среднеквадратических отклонений.
  • Процент отсечения – устанавливает диапазон отображаемых значений. Используйте два текстовых поля для редактирования "верхнего" и "нижнего" процентов.

Вы, кроме того, можете внести дополнительные уточнения в настройку динамического диапазона (DRA) и гамма-фактор.

  • Настройка динамического диапазона – осуществляет одну из приведенных выше растяжек гистограммы, но ограничивает диапазон значений только пикселами, находящимися в окне отображения. Эта опция всегда активирована, если сервис изображений не имеет глобальной статистики.
  • Гамма – растягивает диапазон средних значений, но сохраняет экстремально высокие и низкие значения.

Порядок отображения изображений

Сервис изображений, опубликованный на основе набора данных мозаики , содержит одно или несколько изображений. Эти изображения собираются в мозаику на лету, и во время просмотра пользователем сервиса изображений ведут себя как единое изображение. При создании карты выберите, как будут пользователи видеть ее. Можно определить порядок изображений и обработки перекрывающихся участков. Порядок изображений означает выбор изображения в случае, когда есть несколько изображений на одну и ту же территорию. Вы также можете определить, как будут отображены перекрывающиеся области изображений.

В качестве автора вы устанавливаете Метод приоритетного упорядочения, который контролирует, какие изображения показываются и в каком порядке. Изображения из сервиса изображений видны только при определенных масштабах. Диапазон отображения соответствует минимальному (MinPS) и максимальному (MaxPS) размеру пиксела в атрибутах изображения. Настройка видимости работает всегда, кроме случая, когда выбрана опция Список изображений .

  • Только масштаб – используйте эту опцию для упорядочения изображений по масштабу. Для изображений, имеющих одинаковый масштаб, порядок отображения будет определяться по значению атрибута ObjectID.
  • Атрибут – выберите атрибут, определяющий порядок отображения изображений. Изображение с наибольшим значением этого атрибута окажется наверху. К примеру, если вы хотите показать самые последние изображения, отобразите их, основываясь на дате их получения. Воспользуйтесь календарем для выбора даты получения. Другим часто используемым атрибутом является процент покрытия изображения облаками, который позволяет показывать самый чистый снимок.
  • Ближайший к центру вида центр изображения – при просмотре пользователями растрового слоя мозаики показываемые изображения будут меняться. Сверху оказываются изображения, центры которых находятся ближе к центру экрана. Это используется в случае, если пользователи заинтересованы в стационарности объектов.
  • Фиксированный порядок с самым северо-западным сверху – порядок, основывающийся на расстоянии между центром каждого изображения и северо-западным углом слоя мозаики. Поскольку это изображение статично, оно используется, если вы не хотите, чтобы изображения менялись.
  • Ближайшее расположение сенсора к центру вида – показывает изображения с минимальными искажениями. При получении сенсором изображения окрестность точки, располагающейся непосредственно под сенсором (точка надира), характеризуется наименьшими искажениями. Изображения, у которых точка надира находится ближе к центру экрана, окажутся наверху.
  • Определенные линии сшивки – у вас должны быть созданы линии сшивки, если вы собираетесь предоставить пользователям доступ к этой опции. Изображения упорядочиваются с учетом имеющихся у вас линий сшивки. При выборе этой опции используйте параметр Смешать значения пикселов для устранения перекрывающихся пикселов.
  • Список изображений – если вам нужно отобразить небольшое число изображений, просто составьте их список, отделяя друг от друга запятыми в том порядке, в котором они должны быть показаны. Этот метод позволяет обойти ограничение видимости изображений и принудительно показывает перечисленные изображения в любом масштабе, например, 1, 2, 3 .

Выберите опцию Обратный порядок для показа изображений в обратном порядке.

После выбора метода упорядочения изображений у вас могут появиться места, где два и более изображения перекрываются. Вы можете решить проблему таких перекрывающихся областей, используя следующие настройки:

  • Только высший приоритет – Использует значения пиксела изображения, имеющего наивысший приоритет, установленный Методом приоритетного упорядочения .
  • Минимальное значение пиксела – использует наименьшее значение пиксела.
  • Максимальное значение пиксела – использует наибольшее значение пиксела.
  • Среднее значение пиксела – использует среднее значение пиксела.
  • Смешать значения пикселов – использует опцию смешения для перекрывающихся областей с целью создания плавного перехода в районе линий сшивки.
  1. Убедитесь, что вы выполнили вход и у вас есть права для создания ресурсов.
    Подсказка:

    Если у вас нет прав для создания ресурсов, вы все равно можете изменить отображение снимков, щелкнув Изменить карту .

  2. Откройте карту во вьюере карт, щелкните Детали и выберите Ресурсы .
  3. Выберите метод расстановки изображений по порядку.
  4. При необходимости измените порядок на обратный, выбрав опцию Обратный порядок .
  5. Выберите метод решения проблемы перекрывающихся пикселов.
  6. Щелкните Применить , чтобы отобразить видимость и приоритет.

Задание качества изображения

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

  • Производительность – сжимает в формат JPEG с 50-процентным качеством. Если исходное изображение имело размер 1034 на 721 пикселов (примерно 2 Мб), размер переданного с использованием этой опции изображения будет равен 62 Кб. Эта опция не поддерживает прозрачность, поэтому области, для которых данные отсутствуют, будут показаны черным цветом.
  • Баланс – сжимает в PNG32 в случае, если в текущем виде имеются пикселы со значением NoData и в JPEG с 75-процентным качеством, если прозрачных пикселов нет. Если исходное изображение имело размер 1034 на 721, а прозрачных пикселов на нем не было, размер переданного с использованием этой опции изображения будет равен 99 Кб.
  • Качество – сжимает в формат PNG32, если в текущем виде есть пикселы со значением NoData и использует сжатие JPEG с 95-процентным качеством, если прозрачные пикселы отсутствуют. Если исходное изображение имело размер 1034 на 721, а прозрачных пикселов на нем не было, размер переданного с использованием этой опции изображения будет равен 277 Кб.

В большинстве случаев используются опции Качество и Баланс . Если вы находитесь в сети с небольшой пропускной способностью, выберите опцию Производительность . Помните, что выбор опции Производительность приведет к показу прозрачных пикселов черным цветом.

Фильтр изображений

Если у вас есть несколько изображений в сервисе изображений, вы можете использовать атрибутивные запросы для фильтрации их отображения. Фильтрация слоев изображения работает аналогично фильтрации векторных слоев. Например, если вы работаете с общим архивом снимков Landsat и хотите при этом видеть только свободные от облаков снимки Landsat-7, вы можете добиться этого, используя фильтр. При использовании фильтра изображений помните, что масштаб карты может повлиять на видимость отфильтрованных изображений.

Задание многомерного фильтра

Используйте многомерный фильтр для выбора отображаемых на карте переменных и для разделения данных на сектора с помощью размеров. Этот тип данных часто встречается в океанографии и метеорологии для отображения скорости ветра, океанских течений и других переменных на разных высотах, глубинах и при разных давлениях. Переменные представляют объект наблюдения или прогнозирования, такой как температура воды, соленость и скорость ветра. Размеры используются для изучения наблюдений или прогнозов, таких как время, глубина и давление.

Изменение стиля данных векторного поля

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

Параметры размеров

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

  • Размер позволяет выбрать размер, который вы будете использовать.
  • Использование диапазона задает диапазон значений с помощью бегунка размеров. Снимите эту отметку, чтобы работать с одним интервалом одновременно.
  • Скорость воспроизведения задает скорость анимации.
  • Диапазон размеров включен по умолчанию и позволяет визуализировать все временные интервалы. Снимите эту отметку, чтобы ввести определенные значения для начальной и конечной точек.
  • Интервал напоминает шаг времени; однако здесь используются единицы измерения размера, а не времени. Например, при визуализации переменной на различных глубинах, задайте Интервал равным 100 метрам, чтобы увидеть слой, отображающий каждые 100 метров глубины.

Показать таблицу/опции таблицы

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

  • Показать выбранные записи/Показать все записи – отображаются только выбранные в слое записи.
  • Центрировать выборку – изображение центрируется на выбранных вами в слое объектах.
  • Очистить выборку – выборка изображений снимается. Они останутся видимыми на карте и в таблице.
  • Показать/Скрыть столбцы – вы можете выбрать, какие столбцы будут отображаться в таблице.
  • Выбрать видимые изображения – выбираются видимые на карте изображения.
  • Показать все изображения – отображаются все изображения слоя вашей карты.
  • Отображать выбранные изображения – Отображаются только выбранные изображения.

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

  1. Для отбора изображений в вашем распоряжении имеется три инструмента – во-первых, вы можете отбирать изображения с помощью фильтра , который применяется к слою, во-вторых, вы можете использовать таблицу для отображения визуально доступных изображений , и в-третьих, вы можете щелкнуть точку на карте в то время, когда отображается таблица. Когда изображения будут отобраны, используйте Опции таблицы для отображения выбранных записей.
  2. Очистите выборку, щелкнув записи в таблице. Для выбора сразу нескольких элементов можно использовать клавишу Ctrl . Снова выберите Показать выбранные изображения , используя опции таблицы.
  3. Используйте опцию Отобразить выбранные изображения , чтобы зафиксировать это изображение.
  4. Чтобы отображались все изображения, выберите опцию Показать все изображения или используйте кнопку Сброс в контекстном меню отображения изображений слоя.

Легенда

Если ваш сервис изображений опубликован на сервере ArcGIS 10.2 или более поздней версии, вы можете показать легенду на вашей карте. Легенда отображается по умолчанию, однако, у вас есть возможность ее скрыть.