игра брюс 2048
Главная / Программирование / Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP / Тест 6

Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP - тест 6

Упражнение 1:
Номер 1
Можно ли использовать OpenCV в коммерческих приложениях?:

Ответ:

 (1) нет 

 (2) да, если в документации или сопроводительных материалах содержится копия лицензии OpenCV 

 (3) да, если об этом никто не узнает 


Номер 2
Какие языки программирования официально поддерживаются в OpenCV?:

Ответ:

 (1) C/C++, Python, Matlab 

 (2) C/C++, Matlab, Java 

 (3) C/C++, Python, Java 


Номер 3
Для чего в OpenCV  используется CMake:

Ответ:

 (1) для сборки самой библиотеки на разных платформах  

 (2) для сборки самой библиотеки на разных платформах и для упрощения использования библиотеки на разных платформах, за исключением Windows 

 (3) для сборки самой библиотеки на разных платформах и для упрощения использования библиотеки на разных платформах, включая Windows 


Упражнение 2:
Номер 1
Какой из циклов реализует подсчет производной по оси X с помощью оператора Собеля:

Ответ:

 (1) Mat deriv(img.rows, img.cols, CV_16S); for( int i = 1; i < img.rows-1; i++) for( int j=0; j < img.cols-1; j++) deriv.at<short>(i,j)= img.at<uchar>(i+1,j-1)+img.at<uchar>(i+1,j)*2+img.at<uchar>(i+1,j+1) – img.at<uchar>(i-1,j-1)-img.at<uchar>(i-1,j)*2+img.at<uchar>(i-1,j+1);  

 (2) Mat deriv(img.rows, img.cols, CV_16S); for( int i = 1; i < img.rows-1; i++) for( int j=0; j < img.cols-1; j++) deriv.at<short>(i,j)= img.at<uchar>(i-1,j+1)+img.at<uchar>(i,j+1)*2+img.at<uchar>(i+1,j+1) – img.at<uchar>(i-1,j-1)-img.at<uchar>(i,j-1)*2+img.at<uchar>(i+1,j-1);  

 (3) Mat deriv(img.rows, img.cols, CV_16S); for( int i = 1; i < img.rows-1; i++) for( int j=0; j < img.cols-1; j++) deriv.at<short>(i,j)= img.at<uchar>(i-1,j)+img.at<uchar>(i,j-1)-img.at<uchar>(i,j)*4 + img.at<uchar>(i,j+1)+img.at<uchar>(i+1,j);  


Номер 2
Чему будет равен счетчик ссылок матрицы A после вызова make_aligned_rgb_image
	
Mat make_aligned_rgb_image(int width, int height)
	{	
		Mat img(height, ((width+15)/16)*16, CV_8UC3);
		return img(Rect(0, 0, width, height));
	}
 …
 Mat A = make_aligned_rgb_image(13, 13);
	

Ответ:

 (1) ничему, программа упадет 

 (2)

 (3)


Номер 3
Как в Питоне создать эффект "расфокусированного" изображения:

Ответ:

 (1) быстрого вычисления средней яркостей пикселей в прямоугольной области 

 (2) быстрого нахождения минимального значения яркости в прямоугольной области 

 (3) и то, и другое 


Упражнение 3:
Номер 1
Окрестность угловая точка на изображении: 

Ответ:

 (1) image = cv2.resize(image, (image.shape[1]/4, image.shape[0]/4)) image = cv2.resize(image, (image.shape[1]*4, image.shape[0]*4))  

 (2) image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)  

 (3) image = cv2.GaussianBlur(image, (7, 7), 1.5) 


Номер 2
Для чего вызывается мы вызываем waitKey() в цикле обработки видео и указываем там задержку 30мс?:

Ответ:

 (1) чтобы пользователь успел увидеть результаты обработки 

 (2) чтобы пользователь успел увидеть результаты обработки и чтобы выйти из цикла по нажатию клавиши 

 (3) чтобы выйти из цикла по нажатию клавиши и чтобы обработать события от оконной системы (в частности, запросы на перерисовку) 


Номер 3
Вы работаете в Ми-6. Ваш друг, Джейс Бонд, вручил вам фотографию какого-то здания, и попросил найти по базе, что это за здание. Вы отсканировали фотографию. Ваши дальнейшие действия:

Ответ:

 (1) попросить помощи на answers.opencv.org, приложить фото, объяснить ситуацию 

 (2) использовать алгоритм поиска плоского изображения, отобрать результаты с большим количеством согласованных совпадений после вычисления матрицы гомографии 

 (3) то же что и b, но использовать фундаментальную матрицу вместо матрицы гомографии 


Упражнение 4:
Номер 1
На каких операционных системах работает OpenCV?:

Ответ:

 (1) Windows 

 (2) Windows, Linux 

 (3) Windows, Linux, iOS, Android 


Номер 2
Какую функциональность содержит модуль features2d?:

Ответ:

 (1) обработка изображений 

 (2) нахождение особых точек и вычисление их описателей  

 (3) захват видео с камеры 


Номер 3
В каких случаях Питон предпочтительней C++ при работе с OpenCV:

Ответ:

 (1) для прототипирования 

 (2) для написания кросс-платформенных программ 

 (3) для написания законченных коммерческих программ 


Упражнение 5:
Номер 1
Как получить справку по функции OpenCV при использовании Питон?:

Ответ:

 (1) "import cv2; print cv2.<имя функции>.__doc__ 

 (2) зайти на сайт docs.opencv.org и набрать имя функции 

 (3) оба способа подходят 


Номер 2
Какая из приведенных программ на C++ корректно подсчитывает кол-во пикселей полутонового изображения img, яркость которых больше чем определенный порог t:

Ответ:

 (1) int count = countNonZero(img > t);  

 (2) int count = 0; for(int i = 0; i < (int)img.total(); i++) count += img.data[i] > t; 

 (3) Mat mask; inRange(img, t, t+255, mask); int count = countNonZero(mask); 


Номер 3
Какой результат произведет следующий код:
Mat* img = new Mat(10, 10, CV_8U);
printf("sum=%g\n", sum(*img)[0]);
img->release();
delete img;

Ответ:

 (1) напечатает 0 и завершится ошибкой из-за двойного освобождения памяти 

 (2) завершится ошибкой при попытке посчитать сумму элементов, поскольку созданная матрица не инициализирована 

 (3) напечатает некоторое число  


Упражнение 6:
Номер 1
Вам нужно определить на изображении участок NxN пикселей, в котором контраст максимален (область фокусировки). Какой из приведенных фрагментов решает эту задачу наиболее оптимально и корректно?

Ответ:

 (1) Mat dx, dy, mag; Sobel(img, dx, CV_32F, 1, 0, 3); Sobel(img, dy, CV_32F, 0, 1, 3); magnitude(dx, dy, mag); blur(mag, mag, Size(N, N)); Point maxLoc; minMaxLoc(mag, 0, 0, 0, &maxLoc);  

 (2) Point maxLoc; double maxContrast=0; for( int i = 0; i+N <= img.rows; i++ ) for( int j = 0; j+N <= img.cols; j++ ) { Mat window = img(Rect(j, i, N, N)); /* здесь идет код из лекции, который считает контраст внутри окна, сравнивает его с текущим maxContrast и обновляет максимум и его позицию, если нужно */ }  

 (3) Mat edges; Canny(img, edges, 5, 50); blur(edges, edges, Size(N, N)); Point maxLoc; minMaxLoc(edges, 0, 0, 0, &maxLoc); 


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

Ответ:

 (1) увеличить размер minSize – параметр, подаваемый в метод detectMultiScale() 

 (2) уменьшить изображение перед детектированием. Использовать аппаратное ускорение для уменьшения изображения.  

 (3) запускать детектор в параллельном потоке на некоторых "ключевых" кадрах, следить за обнаруженными лицами для вычисления их положений на промежуточных кадрах 


Номер 3
Что такое особые точки на изображении?: 

Ответ:

 (1) точки с наибольшим локальным контрастом 

 (2) точки, которые при изменении ракурса и условий освещения по-прежнему позволяют корректно оценить положение объектов, на которых они находятся.  

 (3) точки, для которых проще всего вычислять дескрипторы 


Номер 4
Что такое дескрипторы?:

Ответ:

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

 (2) дескрипторы – это описатели файлов в операционной системе. При чем здесь компьютерное зрение? 

 (3) дескриторы описывают положение, размер, зашумленность, уровень освещения и другие подобные характеристики особых точек 




Главная / Программирование / Разработка мультимедийных приложений с использованием библиотек OpenCV и IPP / Тест 6