LogoLogo
TRIK StudioTRIKLego EV3Lego NXT
Русский
Русский
  • Справочный центр ТРИК
  • TRIK Studio
    • О TRIK Studio
      • Как узнать версию TRIK Studio
    • Начало работы и создание проекта
    • Интерфейс TRIK Studio
      • Главное меню TRIK Studio
      • Работа с графиками
      • Как открыть настройки робота?
      • Как изменить язык интерфейса TRIK Studio?
    • Настройки TRIK Studio
    • 2D-модель
      • Гибкая настройка 2D-модели
      • Добавление ограничений в 2D-модель
        • Примеры задания ограничений
    • Программирование на визуальном языке
      • Добавление и удаление блоков
      • Общие блоки
      • Связи между блоками
      • Синтаксис выражений в блоках
        • Типы языка TRIK Studio
          • Массив
        • Лексемы языка TRIK Studio
        • Операторы языка TRIK Studio
        • Константы
        • Сенсорные переменные
        • Встроенные функции
      • Редактирование свойств элементов
      • Подпрограммы
    • Программирование на текстовом языке
    • Упражнения
    • Сторонние утилиты
      • PuTTY
      • WinSCP
    • Горячие клавиши в TRIK Studio
    • Сбои из-за антивирусов
      • Антивирус Avast блокирует TRIK Studio. Что делать?
  • TRIK Studio Junior
    • О TRIK Studio Junior
      • Как узнать версию TRIK Studio Junior
    • Начало работы и создание проекта в TRIK Studio Junior
    • Интерфейс TRIK Studio Junior
      • Как заменить изображение «Исполнителя» в TRIK Studio Junior?
    • 2D-модель в TRIK Studio Junior
    • Настройки TRIK Studio Junior
    • Программирование на визуальном языке в TRIK Studio Junior
      • Добавление и удаление блоков в TRIK Studio Junior
      • Блоки в TRIK Studio Junior
      • Связи между блоками в TRIK Studio Junior
      • Синтаксис выражений в блоках в TRIK Studio Junior
      • Редактирование свойств элементов в TRIK Studio Junior
      • Подпрограммы в TRIK Studio Junior
    • Упражнения в TRIK Studio Junior
  • Интеграции
    • PyCharm
      • Запуск 2D-модели в TRIK Studio из PyCharm
    • Sublime Text
      • Запуск 2D-модели в TRIK Studio из Sublime Text
      • Загрузка программ на нескольких роботов ТРИК из Sublime Text
    • VSCode
      • Запуск 2D-модели в TRIK Studio из VSCode
      • Загрузка программ на нескольких роботов ТРИК из VSCode
  • Контроллер ТРИК
    • О контроллере ТРИК
      • Скриншот экрана контроллера ТРИК
    • Обновление встроенного программного обеспечения контроллера ТРИК
      • Как узнать версию встроенного ПО контроллера ТРИК?
    • Меню контроллера ТРИК
    • Подключения по Wi-Fi к контроллеру ТРИК
      • Подключение контроллера ТРИК к компьютеру и смартфону
      • Подключение контроллера ТРИК к TRIK Studio
      • Взаимодействие контроллеров ТРИК
        • Пример решения задачи по взаимодействию двух роботов
    • Подключение к контроллеру ТРИК с помощью UART
    • Запуск программ и их загрузка на контроллер ТРИК
    • Программирование ТРИК на визуальном языке
      • Блоки ТРИК
      • Сенсорные переменные для контроллера ТРИК
    • Программирование ТРИК на Python и JavaScript
      • Объект «brick»
        • Класс «accelerometer»
        • Класс «battery»
        • Класс «colorSensor»
        • Класс «display»
        • Класс «encoder»
        • Класс «gyroscope»
        • Класс «keys»
        • Класс «led»
        • Класс «lineSensor»
        • Класс «motor»
        • Класс «objectSensor»
        • Класс «marker»
        • Класс «sensor»
        • Класс «irCamera»
      • Объект «script»
      • Объект «mailbox»
      • Объект «gamepad»
      • Объект «Threading»
      • Функция getPhoto
      • Функция include
    • Веб-интерфейс контроллера ТРИК
    • Подключение устройств к ТРИК и работа с ними
      • Подключение и работа с видеомодулем
      • Тестирование подключенных к контроллеру ТРИК устройств
      • Настройка работы USB-камеры с контроллером ТРИК
      • Съемка изображений на камеру ТРИК и использование их в TRIK Studio
      • Работа с аккумулятором и зарядным устройством
  • Контроллер LEGO EV3
    • O LEGO EV3
    • Подключение контроллера LEGO EV3 к TRIK Studio
    • Блоки LEGO EV3
    • Сенсорные переменные для контроллера LEGO EV3
    • Запуск программ и их загрузка на контроллер LEGO EV3
    • Программирование LEGO EV3 для Virtual Robotics Toolkit в TRIK Studio
  • Контроллер LEGO NXT
    • О LEGO NXT
    • Прошивка контроллера LEGO NXT
    • Подключение контроллера LEGO NXT к TRIK Studio
    • Блоки LEGO NXT
    • Сенсорные переменные для контроллера LEGO NXT
    • Программирование LEGO NXT на C
    • Запуск программ и их загрузка на контроллер LEGO NXT
  • Квадрокоптер Пионер
    • О квадрокоптере Геоскан Пионер
    • Блоки квадрокоптера Геоскан Пионер
  • TRIK Gamepad
    • О TRIK Gamepad
      • Приложение TRIK Gamepad
      • Утилита TRIK Gamepad
    • Управление роботом с пульта
  • Feedback
    • Действия при неправильной работе TRIK Studio или контроллера ТРИК
    • Задать вопрос
    • trikset.com
Powered by GitBook
On this page
  • Описание функции
  • Вызов функции
  • Пример работы
  • Реализация функции перевода изображения в оттенок серого
  • Реализация функции бинаризации изображения

Was this helpful?

Export as PDF
  1. Контроллер ТРИК
  2. Программирование ТРИК на Python и JavaScript

Функция getPhoto

PreviousОбъект «Threading»NextФункция include

Last updated 4 years ago

Was this helpful?

Описание функции

Функция возвращает одномерный массив байт, в который записаны пиксели изображения в формате rgb32, снятого с камеры (размер изображения — 160x120). Данная функция может быть использована для решения задач распознавания маркеров.

Вызов функции

pic = getPhoto()
var pic = getPhoto();

Пример работы

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

Сделайте снимок и выведите результат на экран c помощью функции .

# взять кадр в формате rgb32
pic = getPhoto()
brick.display().show(pic, total_height, total_width, "rgb32")
script.wait(2000)
// взять кадр в формате rgb32
var pic = getPhoto();
brick.display().show(pic, total_height, total_width, "rgb32");
script.wait(2000);

Результат:

Реализация функции перевода изображения в оттенок серого

def grayScale(sPic):
	bufPic = []
	for i in range(total_height):
		for j in range(total_width):
			x = i * total_width + j
			p = sPic[x]
			r = (p & 0xff0000) >> 16	# взять значение компоненты красного
			g = (p & 0xff00) >> 8 # взять значение компоненты зеленого
			b = (p & 0xff) # взять значение компоненты синего
			p = r * 0.299 + g * 0.587 + b * 0.114; # компонента Y из YUV
			bufPic.append(p)
	return bufPic
function grayScale(sPic){
	bufPic = [];
	for(var i = 0; i < total_height; i++)
		for(var j = 0; j < total_width; j++){
			var x = i * total_width + j;
			var p = sPic[x];
			var r = (p & 0xff0000) >> 16;	// взять значение компоненты красного
			var g = (p & 0xff00) >> 8;	// взять значение компоненты зеленого
			var b = (p & 0xff);		// взять значение компоненты синего
			p = r * 0.299 + g * 0.587 + b * 0.114; // компонента Y из YUV
			bufPic[x] = p; 
		}
	return bufPic;
}

Перевод изображения в черно-белый формат и вывод на дисплей:

pic = grayScale(pic)

brick.display().show(pic, total_height, total_width, "grayscale8")
script.wait(2000)
var pic = grayScale(pic);

brick.display().show(pic, total_height, total_width, "grayscale8");
script.wait(2000);

Результат:

Реализация функции бинаризации изображения

# Бинаризация -- перевод изображения в ЧБ
def binarization(treshold, sPic):
	bufPic = []
	for i in range(len(sPic)):
		bufPic.append(255 if sPic[i] > treshold else 0)
	return bufPic
// Бинаризация -- перевод изображения в ЧБ
function binarization(treshold, sPic){
	bufPic = []
	for(var i = 0; i < sPic.length; i++){
		bufPic[i] = sPic[i] > treshold ? 255 : 0;
	}
	return bufPic;
}

Перевод изображения в черно-белого и вывод на дисплей:

pic = binarization(80, pic)
brick.display().show(pic, total_height, total_width, "grayscale8")
script.wait(2000)
var pic = binarization(80, pic);
brick.display().show(pic, total_height, total_width, "grayscale8");
script.wait(2000);

Результат:

.

Дополнительный материал: презентация Университета Иннополис «».

Пример программы с использованием функции getPhoto
Распознавание меток ARTag
show