OpenCV introduction. Mašinska vizija, 2017.

Size: px
Start display at page:

Download "OpenCV introduction. Mašinska vizija, 2017."

Transcription

1 OpenCV introduction Mašinska vizija, 2017.

2 OpenCV -History OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision. Intel team from Nizhny Novgorod created the library Vadim Pisarevsky the largest single contributor to the library Gary Bradski in launched OpenCV with the hopes of accelerating computer vision and artificial intelligence by providing a solid infrastructure for everyone working in the field. OpenCV has received much of its support over the years from Intel and Google, but especially from Itseez (recently acquired by Intel), which did the bulk of the early development work. Intel also donated the built-in performance primitives code, which provides for seamless speedup on Intel architectures. open-source BSD liscence imposes minimal restrictions on the redistribution of covered software allows Linking, Distribution, Modification, Private use and Subliscencing requires that the code under BSD must be licensed under BSD if redistributed in source code format

3 Nizhny Novgorod

4 Why OpenCV? According to one well-known story, in 1966, Marvin Minsky at MIT asked his undergraduate student Gerald Jay Sussman to spend the summer linking a camera to a computer and getting the computer to describe what it saw That is how computer/machine vision started! OpenCV was designed for computational efficiency and with a strong focus on real-time applications. It is written in optimized C++ and can take advantage of multicore processors. => IT IS FAST The library is written in C and C++ and runs under Linux, Windows, and Mac OS X. There is active development on interfaces for Python, Java, MATLAB, and other languages, including porting the library to Android and ios for mobile applications. => GOOD PORTABILITY One of OpenCV s goals is to provide a simple-to-use computer vision infrastructure that helps people build fairly sophisticated vision applications quickly. The OpenCV library contains over 500 functions that span many areas in vision, including factory product inspection, medical imaging, security, user interface, camera calibration, stereo vision, and robotics. => DIVERSE USAGE and provides good starting points in each area Functions are well documented, but they lack in example diversity. OpenCV is not great if you just want to manipulate images. OpenCV is great for teaching the computer how to see something!

5 Learning OpenCV x.x A.Kaehler, G. Bradski The intent of this book is tutorial Supplemental material (code examples, exercises, etc.) is available for download at The purpose of this book is to: Comprehensively document OpenCV by detailing what function calling conventions really mean and how to use them correctly Give the reader an intuitive understanding of how the vision algorithms work Give the reader some sense of what algorithm to use and when to use it Give the reader a boost in implementing computer vision and machine learning algorithms by providing many working code examples to start from Suggest ways to fix some of the more advanced routines when something goes wrong

6 OpenCV Block Diagram OpenCV is built in layers. At the top is the OS under which OpenCV operates. Next comes the language bindings and sample applications. Below that is the contributed code in opencv_contrib, which contains mostly higherlevel functionality. After that is the core of OpenCV, and at the bottom are the various hardware optimizations in the hardware acceleration layer (HAL).

7 OpenCV contrib Face Recognition Object Tracking DNN Deep Neural Networks Using Caffe framework models SFM Structure From Motion Structured Light Multi-camera Calibration Stereo Matching...

8 Installing OpenCV 3.2 Using prebuilt OpenCV binaries [Win] tutorial from docs.opencv.org - it is made for v2.4 but works for all newer In order to use them in Visual Studio include files and libraries need to be included/linked libraries as is, if we want some additional function we need to rebuild sources NuGet nuget.org package manager for the Microsoft development platform works only for VS14 and older very simple and fast OpenCV installation, but not flexible recommendation: install opencv3.1 package Building OpenCV from source same tutorial from above rather complicated on Windows, linux provides much easier interface download OCV source code -> install Cmake install additional libraries and download opencv-contrib use cmake to configure and generate build, then VS to compile

9 Installing OpenCV Using prebuilt OpenCV binaries [Win] Sourceforge page -> > -vc14.exe run the.exe, select path for extraction (suggested E:/MS1MV/opencv) set the environment variable: OPENCV_DIR E:\MS1MV\opencv\build\x64\vc14 add bin folder to system path: %OPENCV_DIR%\bin lib static libraries dll dynamic link libraries loaded only on demand during runtime

10 Building applications with OCV inside the Microsoft Visual Studio To build an application with OpenCV you need to do two things: Tell to the compiler how the OpenCV library looks. You do this by showing it the header files. Tell to the linker from where to get the functions or data structures of OpenCV, when they are needed. VS -> New Project - > Win32 Console Application -> give name -> OK - > Next -> Empty Project -> Finish View -> Other Windows -> Property Manager open Property Manager view and select Debug x64 -> Add New Project Property Sheet

11 Building applications with OCV inside the Microsoft Visual Studio created Property Sheet -> Properties OpenCV include directory (*.h and *.hpp files) C++ -> General -> Additional Include Directories = $(OPENCV_DIR)\..\..\include (make sure to press Enter and Apply) Libraries we want to link them static (*.lib) Linker -> General -> Additional Library Directories -> $(OPENCV_DIR)\lib Linker -> Input -> Additional Dependencies -> we need to write down all debug libraries (when creating release property page, then release libraries). dynamic (*.dll) program will look for the.dll s during runtime and if we have correctly added their path to path environment variable it should successfully find them

12 Run some code! Create new.cpp file in Source Files Copy the code #include <opencv2/opencv.hpp> //Include file for every supported OpenCV function int main(int argc, char** argv) { cv::mat img = cv::imread(argv[1], -1); // Image name is expected as command line argument if (img.empty()) return -1; // always check if the image was successfully read!!! // create display window cv::namedwindow("image", cv::window_autosize); cv::imshow("image", img); // show image; the window is selected through is unique name cv::waitkey(0); // to keep the window showing we use waitkey(ms delay), 0 is forever cv::destroywindow("example1"); // after any button is pressed close the window and finish return 0; }

13 Documentation tutorials introduction: installation and hello world core module: matrix manipulation, file I/O, random generator imgproc: smoothing, sharpening, edge detection, common image processing highgui: manipulate windows displays and add trackbars and other UI cheatsheet (OCV 2.4!) High level overview of the library OpenCV 3.x Modules ppt

14 First program Display a picture - DONE OpenCV provides utilities for reading from a wide array of image file types, as well as from video and cameras. These utilities are part of a toolkit called HighGUI, which is included in the OpenCV package. We used some of these utilities to create a simple program that opens an image and displays it on the screen. Display grayscale version of the image cv::cvtcolor (convert color) cvtcolor is not a part of highgui -> look for appropriate module and include it which color systems are supported? in OpenCV input images are in BGR color space!!!

15 Simple transformation Perform image blurring with Gaussian filter 5x5, sigma = 5. cv::gaussianblur(cv::inputarray src, cv::outputarray dst, Size ksize, double sigmax, double sigmay=0.0, int bordertype = cv::border_default) Sobel edge detection on a grayscale image -> Save image (imwrite) where are the edges? what s the data type? how does imshow() work?

16 Input from a Camera -> cv::videocapture The first thing we need is the cv::videocapture object. This object contains the information needed for reading frames from a camera or video file. Depending on the source, we use one of three different calls to create a cv::videocapture object: cv::videocapture::videocapture( const string& filename); // video filename cv::videocapture::videocapture(int device); // camera (device) ID cv::videocapture::videocapture(); // default constructor If the open is successful and we are able to start reading frames, the member function cv::videocapture::isopened() will return true. A lot of people don t always check these sorts of things, assuming that nothing will go wrong. Don t do that here. The returned value of cv::videocapture::isopened() will be false if for some reason the file could not be opened (e.g., if the file does not exist), but that is not the only possible cause. The constructed object will also not be ready to be used if the codec with which the video is compressed is not known. Because of the many issues surrounding codecs (legal as well as technical), this is not as rare of an occurrence as one might hope.

17 Reading the camera cv::videocapture::read(cv::outputarray image); cv::videocapture::operator>>(cv::mat& image); cv::videdocapture::grab(void) -> copies raw data from camera quickly to computer, and then when we want to use it, we must decode it cv::videocapture::retrieve(cv::outputarray image, int channel=0) read() preforms grabbing and retrieving together Where is grab-retrieve useful? The most common situation arises when there are multiple cameras (e.g., with stereo imaging). In this case, it is important to have frames that are separated in time by the minimum amount possible (ideally they would be simultaneous for stereo imaging). Therefore, it makes the most sense to first grab all the frames and then come back and decode them after you have them all safely in your buffers.

18 Video metadata cv::videocapture::get() and cv::videocapture::set() Video files contain not only the video frames themselves, but also important metadata, which can be essential for handling the files correctly. When a video file is opened, that information is copied into the cv::videocapture object s internal data area. It is very common to want to read that information from the cv::videocapture object, and sometimes also useful to write to that data area ourselves. Some metadata: video duration frame size bit rate mode color cpace chroma subsampling

19 Input from a Camera Open file read_camera.cpp and copy the code (make sure that you don t have two main functions) Function expects camera filename as input, so make sure you have no command line arguments Run the code, see what happens! Instead of simple streaming, show edges! we tried Sobel for image, now try Canny

20 Getting to know OpenCV data types OpenCV has many data types, which are designed to make the representation and handling of important computer vision concepts relatively easy and intuitive. At the same time, many algorithm developers require a set of relatively powerful primitives that can be generalized or extended for their particular needs. This library attempts to address both of these needs through the use of templates for fundamental data types, and specializations of those templates that make everyday operations easier.

21 OpenCV data types 1. Basic data types - are those that are assembled directly from C++ primitives (int, float, etc.). These types include simple vectors and matrices, as well as representations of simple geometric concepts like points, rectangles, sizes, and the like. cv::matx 2. Helper objects - These objects represent more abstract concepts such as the range objects used for slicing, e.g. cv::range 3. Large array types - These are objects whose fundamental purpose is to contain arrays or other assemblies of primitives or, more often, the basic data types. The star example of this category is the cv::mat class, which is used to represent arbitrary-dimensional arrays containing arbitrary basic elements. In addition to these types, OpenCV also makes heavy use of the Standard Template Library (STL). OpenCV particularly relies on the vector class, and many OpenCV library functions now have vector template objects in their argument lists.

22 cv::matx fixed matrix class matrix dimension known at compile time all memory for their data is allocated on the stack, which means that they allocate and clean up quickly Operations on them are fast, and there are specially optimized implementations for small matrices (2 2, 3 3, etc.)

23 cv::vec<> - also fixed Used through aliases (typedefs) for common instantiations of the cv::vec<> template. They have names like cv::vec2i, cv::vec3i, and cv::vec4d (for a two-element integer vector, a three element integer vector, or a four-element doubleprecision floating-point vector, respectively). In general, anything of the form cv::vec{2,3,4,6}{b,w,s,i,f,d} is valid for any combination of two to four dimensions and the six data types. Can be accessed by a vector index -> myvec[0], myvec[1], In the proper sense of C++ inheritance, it is correct to say that the fixed vector template cv::vec<> is a cv::matx<> whose number of columns is one.

24 cv::point<> - also fixed The point classes, which are containers for two or three values of one of the primitive types. cv::point2i, cv::point2f members are accessed by named variables -> mypoint.x, mypoint.y Similar to cv::point<> is cv::size which allows storing 2D object size and also has two members: width and height. Mostly used for defining mask/matrix size

25 cv::range helper object two elements: start and end Ranges are inclusive of their start value, but not inclusive of their end value cv::range(int start, int end) -> [start, end)

26 cv::inputarray and cv::outputarray Many OpenCV functions take arrays as arguments and return arrays as return values, but in OpenCV, there are many kinds of arrays. We have already seen that OpenCV supports small array types (cv::scalar, cv::vec, cv::matx) and STL s std::vector<> large array types (cv::mat and cv::sparsemat). In order to keep the interface from becoming onerously complicated (and repetitive), OpenCV defines the types cv::inputarray and cv::outputarray. In effect, these types mean any of the above with respect to the many array forms supported by the library. The primary difference between cv::inputarray and cv::outputarray is that the former is assumed to be const (i.e., read only).

27 cv::mat Could be considered the epicenter of the entire C++ implementation of the OpenCV library. The overwhelming majority of functions in the OpenCV library are members of the cv::mat class, take a cv::mat as an argument, or return cv::mat as a return value; quite a few are or do all three. Objects such as images are specialized uses of the cv::mat class, but such specific use does not require a different class or type. The cv::mat class is used to represent dense arrays of any number of dimensions. In this context, dense means that for every entry in the array, there is a data value stored in memory corresponding to that entry, even if that entry is zero. Most of the used types have their own Mat constructor. -> open docs

28 cv::mat dims - number of dimensions rows & cols - number of rows and columns. If dims>2, (rows, cols) =(-1,-1) size Size(cols, rows) *data - pointer to the data step defines data layout of the matrix (regarded as an array) This latter member allows cv::mat to behave very much like a smart pointer for the data contained in data. The data array is laid out such that the address of an element whose indices are (for 2D array) i and j: &(mat_i,j) = mat.data + mat.step[0]*i + mat.step[1]*j This means that 2-dimensional matrices are stored row-by-row, 3-dimensional matrices are stored plane-by-plane, and so on. Each element of the data in a cv::mat can itself be either a single number or multiple numbers.

29 Creating array/matrix You can create an array simply by instantiating a variable of type cv::mat. An array created in this manner has no size and no data type. You can, however, later ask it to allocate data by using a member function such as create(). One variation of create() takes as arguments a number of rows, a number of columns, and a type, and configures the array to represent a two-dimensional object. The type of an array determines what kind of elements it has. Valid types in this context specify both the fundamental type of element as well as the number of channels. All such types are defined in the library header, and have the form CV_{8U,16S,16U,32S,32F,64F}C{1,2,3}. For example, CV_32FC3 would imply a 32-bit floating-point three-channel array. If you prefer, you can also specify these things when you first allocate the matrix. There are many constructors for cv::mat, one of which takes the same arguments as create()

30 THE MOST IMPORTANT PARAGRAPH IN THE BOOK It is critical to understand that the data in an array is not attached rigidly to the array object. The cv::mat object is really a header for a data area, which in principle is an entirely separate thing. For example, it is possible to assign one matrix n to another matrix m (i.e., m=n). In this case several things happen: the data pointer inside of m will be changed to point to the same data as n. the data pointed to previously by the data element of m (if any) will be deallocated. the reference counter for the data area that they both now share will be incremented. the members of m that characterize its data (such as rows, cols, and flags) will be updated to accurately describe the data now pointed to by data in m. This all results in a very convenient behavior, in which arrays can be assigned to one another, and the work necessary to do this takes place automatically behind the scenes to give the correct result.

31 Accessing Array Elements Individually By location -> member function at<>() The way this function works is that you specialize the at<>() template to the type of data that the matrix contains, then access that element using the row and column locations of the data you want. cv::datatype<>

32 Accessing Array Elements Individually Through iteration use the iterator mechanism built into cv::mat cv::matconstiterator<> -> The cv::mat methods begin() and end() return objects of this type. This method of iteration is convenient because the iterators are smart enough to handle the continuous packing and noncontinuous packing cases automatically, as ell as handling any number of dimensions in the array.

33 Accessing Array Elements by Block member functions of the cv::mat class row() col() rowrange() -> rowrange(i0, i1) == rowrange(cv::range(i0,i1)) colrange() m(cv::range(i0,i1), cv::range(j0,j1)) -> Array corresponding to the subrectangle of matrix m with one corner at i0, j0 and the opposite corner at (i1-1, j1-1) m( cv::rect(i0,i1,w,h) ); Array corresponding to the subrectangle of matrix m with one corner at i0, j0 and the opposite corner at (i0+w-1, j0+h-1)

34 Back to Sobel Perform Sobel edge detection step by step by accessing each individual pixel and its neighborhood. S = [-1, -2, -1; 0, 0, 0; 1, 2, 1]; //horizontal edges

35 Algebra and cv::mat Operations available for matrix expressions m0 + m1, m0 m1; m0 + s; m0 s; s + m0, s m1; -m0; s * m0; m0 * s; m0.mul( m1 ); m0/m1; // per element m0 * m1; // matrix multiplication m0>m1; m0>=m1; m0==m1; m0<=m1; m0<m1; // per element comparison m0&m1; m0 m1; m0^m1; ~m0; m0&s; s&m0; m0 s; s m0; m0^s; s^m0 ; //bitwise logical operations

36 More Things an Array Can Do m1 = m0.clone(); m0.copyto( m1 ); m0.copyto( m1, mask ); //only entries indicated in the array mask are copied m0.convertto(m1, type, scale, offset); // Convert elements of m0 to type (e.g., CV_32F) and write to m1 after scaling by scale (default 1.0) and adding offset (default 0.0) m0.reshape( chan, rows); m0.empty();

37 Final goal act like cats 1. Detect red circle in the image 2. Extract it from the background 3. extract its center position 4. Display the path of the circle through the given image set Images and template code given: track_red_circle.cpp \fotke

38 Hints and advices Use only one image for start! decide upon color space you want to use (RGB, Lab, HSV) debugging is not so simple, show your image between each image processing step, use multiple windows want to extract a range of values -> use cv::inrange(src, lowerb, upperb, dst) Image is of bad quality? Maybe use some blurring to make objects uniform? Object has holes or not-so-round shape? Morphological operations! I detect several objects? bwlabel (connectedcomponents) Thresholding is boring? Try using Hough circle transform!

39

40 Time performance of accessing single elements DEBUG RELEASE

41 Reference [1] OpenCV dev Documentation [2] Adrian Kaehler and Gary Bradski Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library (1st ed.). O'Reilly Media, Inc.. [3] Kenneth Dawson-Howe A Practical Introduction to Computer Vision with OpenCV (1st ed.). Wiley Publishing.

OpenCV. Basics. Department of Electrical Engineering and Computer Science

OpenCV. Basics. Department of Electrical Engineering and Computer Science OpenCV Basics 1 OpenCV header file OpenCV namespace OpenCV basic structures Primitive data types Point_ Size_ Vec Scalar_ Mat Basics 2 OpenCV Header File #include .hpp is a convention

More information

Check the Desktop development with C++ in the install options. You may want to take 15 minutes to try the Hello World C++ tutorial:

Check the Desktop development with C++ in the install options. You may want to take 15 minutes to try the Hello World C++ tutorial: CS262 Computer Vision OpenCV 3 Configuration with Visual Studio 2017 Prof. John Magee Clark University Install Visual Studio 2017 Community Check the Desktop development with C++ in the install options.

More information

OpenCV. OpenCV Tutorials OpenCV User Guide OpenCV API Reference. docs.opencv.org. F. Xabier Albizuri

OpenCV. OpenCV Tutorials OpenCV User Guide OpenCV API Reference. docs.opencv.org. F. Xabier Albizuri OpenCV OpenCV Tutorials OpenCV User Guide OpenCV API Reference docs.opencv.org F. Xabier Albizuri - 2014 OpenCV Tutorials OpenCV Tutorials: Introduction to OpenCV The Core Functionality (core module) Image

More information

IMPLEMENTATION OF COMPUTER VISION TECHNIQUES USING OPENCV

IMPLEMENTATION OF COMPUTER VISION TECHNIQUES USING OPENCV IMPLEMENTATION OF COMPUTER VISION TECHNIQUES USING OPENCV Anu Suneja Assistant Professor M. M. University Mullana, Haryana, India From last few years, the thrust for automation and simulation tools in

More information

OpenCV Introduction. CS 231a Spring April 15th, 2016

OpenCV Introduction. CS 231a Spring April 15th, 2016 OpenCV Introduction CS 231a Spring 2015-2016 April 15th, 2016 Overview 1. Introduction and Installation 2. Image Representation 3. Image Processing Introduction to OpenCV (3.1) Open source computer vision

More information

Image Transformations & Camera Calibration. Mašinska vizija, 2018.

Image Transformations & Camera Calibration. Mašinska vizija, 2018. Image Transformations & Camera Calibration Mašinska vizija, 2018. Image transformations What ve we learnt so far? Example 1 resize and rotate Open warp_affine_template.cpp Perform simple resize

More information

Real-time image processing and object recognition for robotics applications. Adrian Stratulat

Real-time image processing and object recognition for robotics applications. Adrian Stratulat Real-time image processing and object recognition for robotics applications Adrian Stratulat What is computer vision? Computer vision is a field that includes methods for acquiring, processing, analyzing,

More information

Multimedia Retrieval Exercise Course 2 Basic of Image Processing by OpenCV

Multimedia Retrieval Exercise Course 2 Basic of Image Processing by OpenCV Multimedia Retrieval Exercise Course 2 Basic of Image Processing by OpenCV Kimiaki Shirahama, D.E. Research Group for Pattern Recognition Institute for Vision and Graphics University of Siegen, Germany

More information

LAB SESSION 1 INTRODUCTION TO OPENCV

LAB SESSION 1 INTRODUCTION TO OPENCV COMPUTER VISION AND IMAGE PROCESSING LAB SESSION 1 INTRODUCTION TO OPENCV DR. FEDERICO TOMBARI, DR. SAMUELE SALTI The OpenCV library Open Computer Vision Library: a collection of open source algorithms

More information

Introduction to OpenCV. Marvin Smith

Introduction to OpenCV. Marvin Smith Introduction to OpenCV Marvin Smith Introduction OpenCV is an Image Processing library created by Intel and maintained by Willow Garage. Available for C, C++, and Python Newest update is version 2.2 Open

More information

The NAO Robot, a case of study Robotics Franchi Alessio Mauro

The NAO Robot, a case of study Robotics Franchi Alessio Mauro The NAO Robot, a case of study Robotics 2013-2014 Franchi Alessio Mauro alessiomauro.franchi@polimi.it Who am I? Franchi Alessio Mauro Master Degree in Computer Science Engineer at Politecnico of Milan

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

Multimedia Retrieval Exercise Course 2 Basic Knowledge about Images in OpenCV

Multimedia Retrieval Exercise Course 2 Basic Knowledge about Images in OpenCV Multimedia Retrieval Exercise Course 2 Basic Knowledge about Images in OpenCV Kimiaki Shirahama, D.E. Research Group for Pattern Recognition Institute for Vision and Graphics University of Siegen, Germany

More information

CHAPTER 7 OBJECTS AND CLASSES

CHAPTER 7 OBJECTS AND CLASSES CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and

More information

An Implementation on Object Move Detection Using OpenCV

An Implementation on Object Move Detection Using OpenCV An Implementation on Object Move Detection Using OpenCV Professor: Dr. Ali Arya Reported by: Farzin Farhadi-Niaki Department of Systems and Computer Engineering Carleton University Ottawa, Canada I. INTRODUCTION

More information

Image Processing (1) Basic Concepts and Introduction of OpenCV

Image Processing (1) Basic Concepts and Introduction of OpenCV Intelligent Control Systems Image Processing (1) Basic Concepts and Introduction of OpenCV Shingo Kagami Graduate School of Information Sciences, Tohoku University swk(at)ic.is.tohoku.ac.jp http://www.ic.is.tohoku.ac.jp/ja/swk/

More information

Using the GeoX Framework

Using the GeoX Framework Using the GeoX Framework Michael Wand February 3rd, 2014 1. Introduction GeoX is a collection of C++ libraries for experimenting with geometric modeling techniques (GeoX = geometry experiments). It consists

More information

Image Processing (1) Basic Concepts and Introduction of OpenCV

Image Processing (1) Basic Concepts and Introduction of OpenCV Intelligent Control Systems Image Processing (1) Basic Concepts and Introduction of OpenCV Shingo Kagami Graduate School of Information Sciences, Tohoku University swk(at)ic.is.tohoku.ac.jp http://www.ic.is.tohoku.ac.jp/ja/swk/

More information

Lab 2. Hanz Cuevas Velásquez, Bob Fisher Advanced Vision School of Informatics, University of Edinburgh Week 3, 2018

Lab 2. Hanz Cuevas Velásquez, Bob Fisher Advanced Vision School of Informatics, University of Edinburgh Week 3, 2018 Lab 2 Hanz Cuevas Velásquez, Bob Fisher Advanced Vision School of Informatics, University of Edinburgh Week 3, 2018 This lab will focus on learning simple image transformations and the Canny edge detector.

More information

Studio 4. software for machine vision engineers. intuitive powerful adaptable. Adaptive Vision 4 1

Studio 4. software for machine vision engineers. intuitive powerful adaptable. Adaptive Vision 4 1 Studio 4 intuitive powerful adaptable software for machine vision engineers Adaptive Vision 4 Introduction Adaptive Vision Studio Adaptive Vision Studio software is the most powerful graphical environment

More information

CHAPTER 7 OBJECTS AND CLASSES

CHAPTER 7 OBJECTS AND CLASSES CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and

More information

Introduction to OpenCV

Introduction to OpenCV Introduction to OpenCV Stefan Holzer, David Joseph Tan Chair for Computer Aided Medical Procedures Technische Universität München Germany Introduction to OpenCV Where to get OpenCV?

More information

ENGR3390: Robotics Fall 2009

ENGR3390: Robotics Fall 2009 J. Gorasia Vision Lab ENGR339: Robotics ENGR339: Robotics Fall 29 Vision Lab Team Bravo J. Gorasia - 1/4/9 J. Gorasia Vision Lab ENGR339: Robotics Table of Contents 1.Theory and summary of background readings...4

More information

Lab 1: First Steps in C++ - Eclipse

Lab 1: First Steps in C++ - Eclipse Lab 1: First Steps in C++ - Eclipse Step Zero: Select workspace 1. Upon launching eclipse, we are ask to chose a workspace: 2. We select a new workspace directory (e.g., C:\Courses ): 3. We accept the

More information

1. Introduction to the OpenCV library

1. Introduction to the OpenCV library Image Processing - Laboratory 1: Introduction to the OpenCV library 1 1. Introduction to the OpenCV library 1.1. Introduction The purpose of this laboratory is to acquaint the students with the framework

More information

GeoInt Accelerator Platform to start developing with GPUs GPU access, GPU-accelerated apps and libraries Register to learn more:

GeoInt Accelerator Platform to start developing with GPUs GPU access, GPU-accelerated apps and libraries Register to learn more: GeoInt Accelerator Platform to start developing with GPUs GPU access, GPU-accelerated apps and libraries Register to learn more: http://goo.gl/eui6k6 Webinar Feedback Submit your feedback for a chance

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

LEARNING OPENCV 3 COMPUTER VISION WITH PYTHON SECOND EDITION

LEARNING OPENCV 3 COMPUTER VISION WITH PYTHON SECOND EDITION page 1 / 7 page 2 / 7 learning opencv 3 computer pdf Learning OpenCV 3 (PDF) puts you in the middle of the expanding field of computer vision. Written by the creators of the free open source OpenCV library,

More information

Exercise 6.2 A generic container class

Exercise 6.2 A generic container class Exercise 6.2 A generic container class The goal of this exercise is to write a class Array that mimics the behavior of a C++ array, but provides more intelligent memory management a) Start with the input

More information

Introduction to Computer Vision Laboratories

Introduction to Computer Vision Laboratories Introduction to Computer Vision Laboratories Antonino Furnari furnari@dmi.unict.it www.dmi.unict.it/~furnari/ Computer Vision Laboratories Format: practical session + questions and homeworks. Material

More information

CMPE 655 Fall 2016 Assignment 2: Parallel Implementation of a Ray Tracer

CMPE 655 Fall 2016 Assignment 2: Parallel Implementation of a Ray Tracer CMPE 655 Fall 2016 Assignment 2: Parallel Implementation of a Ray Tracer Rochester Institute of Technology, Department of Computer Engineering Instructor: Dr. Shaaban (meseec@rit.edu) TAs: Akshay Yembarwar

More information

Visual Computing in OpenCV Lecture 2: Dense Matrices

Visual Computing in OpenCV Lecture 2: Dense Matrices Computer Vision Laboratory Visual Computing in OpenCV Lecture 2: Dense Matrices Michael Felsberg michael.felsberg@liu.se Johan Wiklund johan.wiklund@liu.se OpenCV Types Before looking into matrices, some

More information

Laboratory of Applied Robotics

Laboratory of Applied Robotics Laboratory of Applied Robotics OpenCV: Shape Detection Paolo Bevilacqua RGB (Red-Green-Blue): Color Spaces RGB and HSV Color defined in relation to primary colors Correlated channels, information on both

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

A brief introduction to C++

A brief introduction to C++ A brief introduction to C++ Rupert Nash r.nash@epcc.ed.ac.uk 13 June 2018 1 References Bjarne Stroustrup, Programming: Principles and Practice Using C++ (2nd Ed.). Assumes very little but it s long Bjarne

More information

Ch. 11: References & the Copy-Constructor. - continued -

Ch. 11: References & the Copy-Constructor. - continued - Ch. 11: References & the Copy-Constructor - continued - const references When a reference is made const, it means that the object it refers cannot be changed through that reference - it may be changed

More information

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons

Computer Programming. Basic Control Flow - Loops. Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons Computer Programming Basic Control Flow - Loops Adapted from C++ for Everyone and Big C++ by Cay Horstmann, John Wiley & Sons Objectives To learn about the three types of loops: while for do To avoid infinite

More information

Introduction to Computer Vision

Introduction to Computer Vision Introduction to Computer Vision Dr. Gerhard Roth COMP 4102A Winter 2015 Version 2 General Information Instructor: Adjunct Prof. Dr. Gerhard Roth gerhardroth@rogers.com read hourly gerhardroth@cmail.carleton.ca

More information

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi

Modern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Generic programming Template functions Template classes Iterators Error handling Program input parameters OpenCV cv::mat cv::mat

More information

CSCE574 Robotics Spring 2014 Notes on Images in ROS

CSCE574 Robotics Spring 2014 Notes on Images in ROS CSCE574 Robotics Spring 2014 Notes on Images in ROS 1 Images in ROS In addition to the fake laser scans that we ve seen so far with This document has some details about the image data types provided by

More information

Principles of Programming Languages. Objective-C. Joris Kluivers

Principles of Programming Languages. Objective-C. Joris Kluivers Principles of Programming Languages Objective-C Joris Kluivers joris.kluivers@gmail.com History... 3 NeXT... 3 Language Syntax... 4 Defining a new class... 4 Object identifiers... 5 Sending messages...

More information

RIS shading Series #2 Meet The Plugins

RIS shading Series #2 Meet The Plugins RIS shading Series #2 Meet The Plugins In this tutorial I will be going over what each type of plugin is, what their uses are, and the basic layout of each. By the end you should understand the three basic

More information

Advanced Image Processing, TNM034 Optical Music Recognition

Advanced Image Processing, TNM034 Optical Music Recognition Advanced Image Processing, TNM034 Optical Music Recognition Linköping University By: Jimmy Liikala, jimli570 Emanuel Winblad, emawi895 Toms Vulfs, tomvu491 Jenny Yu, jenyu080 1 Table of Contents Optical

More information

377 Student Guide to C++

377 Student Guide to C++ 377 Student Guide to C++ c Mark Corner January 21, 2004 1 Introduction In this course you will be using the C++ language to complete several programming assignments. Up to this point we have only provided

More information

Assignment 1: grid. Due November 20, 11:59 PM Introduction

Assignment 1: grid. Due November 20, 11:59 PM Introduction CS106L Fall 2008 Handout #19 November 5, 2008 Assignment 1: grid Due November 20, 11:59 PM Introduction The STL container classes encompass a wide selection of associative and sequence containers. However,

More information

Image Manipulation in MATLAB Due Monday, July 17 at 5:00 PM

Image Manipulation in MATLAB Due Monday, July 17 at 5:00 PM Image Manipulation in MATLAB Due Monday, July 17 at 5:00 PM 1 Instructions Labs may be done in groups of 2 or 3 (i.e., not alone). You may use any programming language you wish but MATLAB is highly suggested.

More information

CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING C ++ Basics Review part 2 Auto pointer, templates, STL algorithms

CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING C ++ Basics Review part 2 Auto pointer, templates, STL algorithms CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms AUTO POINTER (AUTO_PTR) //Example showing a bad situation with naked pointers void MyFunction()

More information

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location

More information

1/29/2011 AUTO POINTER (AUTO_PTR) INTERMEDIATE SOFTWARE DESIGN SPRING delete ptr might not happen memory leak!

1/29/2011 AUTO POINTER (AUTO_PTR) INTERMEDIATE SOFTWARE DESIGN SPRING delete ptr might not happen memory leak! //Example showing a bad situation with naked pointers CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms void MyFunction() MyClass* ptr( new

More information

Chapter 1: Object-Oriented Programming Using C++

Chapter 1: Object-Oriented Programming Using C++ Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms

More information

Rapid Natural Scene Text Segmentation

Rapid Natural Scene Text Segmentation Rapid Natural Scene Text Segmentation Ben Newhouse, Stanford University December 10, 2009 1 Abstract A new algorithm was developed to segment text from an image by classifying images according to the gradient

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3 Hello, World! in C Johann Myrkraverk Oskarsson October 23, 2018 Contents 1 The Quintessential Example Program 1 I Printing Text 2 II The Main Function 3 III The Header Files 4 IV Compiling and Running

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 8 C: Miscellanea Control, Declarations, Preprocessor, printf/scanf 1 The story so far The low-level execution model of a process (one

More information

15-323/ Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019

15-323/ Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019 15-323/15-623 Spring 2019 Project 4. Real-Time Audio Processing Due: April 2 Last updated: 6 March 2019 1 Overview In this project, you will create a program that performs real-time audio generation. There

More information

Project Report Number Plate Recognition

Project Report Number Plate Recognition Project Report Number Plate Recognition Ribemont Francois Supervisor: Nigel Whyte April 17, 2012 Contents 1 Introduction............................... 2 2 Description of Submitted Project...................

More information

Vision. OCR and OCV Application Guide OCR and OCV Application Guide 1/14

Vision. OCR and OCV Application Guide OCR and OCV Application Guide 1/14 Vision OCR and OCV Application Guide 1.00 OCR and OCV Application Guide 1/14 General considerations on OCR Encoded information into text and codes can be automatically extracted through a 2D imager device.

More information

CS201- Introduction to Programming Latest Solved Mcqs from Midterm Papers May 07,2011. MIDTERM EXAMINATION Spring 2010

CS201- Introduction to Programming Latest Solved Mcqs from Midterm Papers May 07,2011. MIDTERM EXAMINATION Spring 2010 CS201- Introduction to Programming Latest Solved Mcqs from Midterm Papers May 07,2011 Lectures 1-22 Moaaz Siddiq Asad Ali Latest Mcqs MIDTERM EXAMINATION Spring 2010 Question No: 1 ( Marks: 1 ) - Please

More information

ICS(II),Fall 2017 Performance Lab: Code Optimization Assigned: Nov 20 Due: Dec 3, 11:59PM

ICS(II),Fall 2017 Performance Lab: Code Optimization Assigned: Nov 20 Due: Dec 3, 11:59PM ICS(II),Fall 2017 Performance Lab: Code Optimization Assigned: Nov 20 Due: Dec 3, 11:59PM Shen Wenjie (17210240186@fudan.edu.cn) is the TA for this assignment. 1 Logistics This is an individual project.

More information

Evaluating Performance Via Profiling

Evaluating Performance Via Profiling Performance Engineering of Software Systems September 21, 2010 Massachusetts Institute of Technology 6.172 Professors Saman Amarasinghe and Charles E. Leiserson Handout 6 Profiling Project 2-1 Evaluating

More information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

Assignment 1 - Use OpenCV for camera calibration

Assignment 1 - Use OpenCV for camera calibration ME/CS 132A_Winter 2015 Theory Assignment 1 - Use OpenCV for camera calibration For the distortion OpenCV takes into account the radial and tangential factors. For the radial factor one uses the following

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Spring 2010

CSE 374 Programming Concepts & Tools. Hal Perkins Spring 2010 CSE 374 Programming Concepts & Tools Hal Perkins Spring 2010 Lecture 19 Introduction ti to C++ C++ C++ is an enormous language: g All of C Classes and objects (kind of like Java, some crucial differences)

More information

Computer Vision. Matlab

Computer Vision. Matlab Computer Vision Matlab A good choice for vision program development because Easy to do very rapid prototyping Quick to learn, and good documentation A good library of image processing functions Excellent

More information

Section Notes - Week 1 (9/17)

Section Notes - Week 1 (9/17) Section Notes - Week 1 (9/17) Why do we need to learn bits and bitwise arithmetic? Since this class is about learning about how computers work. For most of the rest of the semester, you do not have to

More information

Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur

Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur Lecture - 05 Classification with Perceptron Model So, welcome to today

More information

CS1114: Matlab Introduction

CS1114: Matlab Introduction CS1114: Matlab Introduction 1 Introduction The purpose of this introduction is to provide you a brief introduction to the features of Matlab that will be most relevant to your work in this course. Even

More information

MEIN 50010: Python Introduction

MEIN 50010: Python Introduction : Python Fabian Sievers Higgins Lab, Conway Institute University College Dublin Wednesday, 2017-10-04 Outline Goals Teach basic programming concepts Apply these concepts using Python Use Python Packages

More information

CS103L PA4. March 25, 2018

CS103L PA4. March 25, 2018 CS103L PA4 March 25, 2018 1 Introduction In this assignment you will implement a program to read an image and identify different objects in the image and label them using a method called Connected-component

More information

CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM

CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM CS 315 Software Design Homework 1 First Sip of Java Due: Sept. 10, 11:30 PM Objectives The objectives of this assignment are: to get your first experience with Java to become familiar with Eclipse Java

More information

Simplify Software Integration for FPGA Accelerators with OPAE

Simplify Software Integration for FPGA Accelerators with OPAE white paper Intel FPGA Simplify Software Integration for FPGA Accelerators with OPAE Cross-Platform FPGA Programming Layer for Application Developers Authors Enno Luebbers Senior Software Engineer Intel

More information

OpenACC Course. Office Hour #2 Q&A

OpenACC Course. Office Hour #2 Q&A OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle

More information

C++ for System Developers with Design Pattern

C++ for System Developers with Design Pattern C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language

More information

Dietrich Paulus Joachim Hornegger. Pattern Recognition of Images and Speech in C++

Dietrich Paulus Joachim Hornegger. Pattern Recognition of Images and Speech in C++ Dietrich Paulus Joachim Hornegger Pattern Recognition of Images and Speech in C++ To Dorothea, Belinda, and Dominik In the text we use the following names which are protected, trademarks owned by a company

More information

Saleae Device SDK Starting a Device SDK Project on Windows Starting a Device SDK Project on Linux... 7

Saleae Device SDK Starting a Device SDK Project on Windows Starting a Device SDK Project on Linux... 7 Contents Starting a Device SDK Project on Windows... 2 Starting a Device SDK Project on Linux... 7 Debugging your Project with GDB... 9 Starting a Device SDK Project on Mac... 11 Build Script / Command

More information

Lab 03 - x86-64: atoi

Lab 03 - x86-64: atoi CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb

More information

Fall 2017 CISC124 9/16/2017

Fall 2017 CISC124 9/16/2017 CISC124 Labs start this week in JEFF 155: Meet your TA. Check out the course web site, if you have not already done so. Watch lecture videos if you need to review anything we have already done. Problems

More information

Chapter 8 :: Composite Types

Chapter 8 :: Composite Types Chapter 8 :: Composite Types Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter08_Composite_Types_4e - Tue November 21, 2017 Records (Structures) and Variants

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

CMPE-655 Fall 2013 Assignment 2: Parallel Implementation of a Ray Tracer

CMPE-655 Fall 2013 Assignment 2: Parallel Implementation of a Ray Tracer CMPE-655 Fall 2013 Assignment 2: Parallel Implementation of a Ray Tracer Rochester Institute of Technology, Department of Computer Engineering Instructor: Dr. Shaaban (meseec@rit.edu) TAs: Jason Lowden

More information

Software Development with C++ Templates

Software Development with C++ Templates Software Development with C++ Templates Lab Submission 1 Exercises should be solved in groups of two. However, with approval from the lecturer, exercises may also be solved alone or in groups of three.

More information

Lecture 2, September 4

Lecture 2, September 4 Lecture 2, September 4 Intro to C/C++ Instructor: Prashant Shenoy, TA: Shashi Singh 1 Introduction C++ is an object-oriented language and is one of the most frequently used languages for development due

More information

Programming computer vision in C / C++

Programming computer vision in C / C++ Appendix E Programming computer vision in C / C++ In this appendix we will describe one way of implementing two-dimensional (2D) images in the C and C++ languages. These languages are chosen because they

More information

Interaction Technology

Interaction Technology Faculty of Science Information and Computing Sciences 2017 Introduction Computer Vision Coert van Gemeren 8 maart 2017 Information and Computing Sciences TODAY 1.Computer Vision 2.Programming C/C++ OpenCV

More information

Introduction to C. Robert Escriva. Cornell CS 4411, August 30, Geared toward programmers

Introduction to C. Robert Escriva. Cornell CS 4411, August 30, Geared toward programmers Introduction to C Geared toward programmers Robert Escriva Slide heritage: Alin Dobra Niranjan Nagarajan Owen Arden Cornell CS 4411, August 30, 2010 1 Why C? 2 A Quick Example 3 Programmer s Responsibilities

More information

Professor Terje Haukaas University of British Columbia, Vancouver C++ Programming

Professor Terje Haukaas University of British Columbia, Vancouver  C++ Programming C++ Programming C++ code is essentially a collection of statements terminated by a semicolon, such as (spaces not needed): a = b + c; Most C++ code is organized into header files and cpp files, i.e., C++

More information

CS 213, Fall 2001 Lab Assignment L4: Code Optimization Assigned: October 11 Due: October 25, 11:59PM

CS 213, Fall 2001 Lab Assignment L4: Code Optimization Assigned: October 11 Due: October 25, 11:59PM CS 213, Fall 2001 Lab Assignment L4: Code Optimization Assigned: October 11 Due: October 25, 11:59PM Sanjit Seshia (sanjit+213@cs.cmu.edu) is the lead person for this assignment. 1 Introduction This assignment

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++ CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 19 Introduction to C++ C++ C++ is an enormous language: All of C Classes and objects (kind of like Java, some crucial differences) Many

More information

CS201 Some Important Definitions

CS201 Some Important Definitions CS201 Some Important Definitions For Viva Preparation 1. What is a program? A program is a precise sequence of steps to solve a particular problem. 2. What is a class? We write a C++ program using data

More information

Quiz Start Time: 09:34 PM Time Left 82 sec(s)

Quiz Start Time: 09:34 PM Time Left 82 sec(s) Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability

More information

Managing custom montage files Quick montages How custom montage files are applied Markers Adding markers...

Managing custom montage files Quick montages How custom montage files are applied Markers Adding markers... AnyWave Contents What is AnyWave?... 3 AnyWave home directories... 3 Opening a file in AnyWave... 4 Quick re-open a recent file... 4 Viewing the content of a file... 5 Choose what you want to view and

More information

CSE 303 Midterm Exam

CSE 303 Midterm Exam CSE 303 Midterm Exam October 29, 2008 Name Sample Solution The exam is closed book, except that you may have a single page of hand written notes for reference. If you don t remember the details of how

More information

PART I - A very brief introduction

PART I - A very brief introduction Università del Salento Facoltà di Ingegneria Image Processing (Elaborazione delle Immagini) A.A. 2013/2014 PART I - A very brief introduction Dario Cazzato, INO CNR dario.cazzato@unisalento.it dario.cazzato@ino.it

More information

CS201 Latest Solved MCQs

CS201 Latest Solved MCQs Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability

More information

AS AUTOMAATIO- JA SYSTEEMITEKNIIKAN PROJEKTITYÖT CEILBOT FINAL REPORT

AS AUTOMAATIO- JA SYSTEEMITEKNIIKAN PROJEKTITYÖT CEILBOT FINAL REPORT AS-0.3200 AUTOMAATIO- JA SYSTEEMITEKNIIKAN PROJEKTITYÖT CEILBOT FINAL REPORT Jaakko Hirvelä GENERAL The goal of the Ceilbot-project is to design a fully autonomous service robot moving in a roof instead

More information

Solve a Maze via Search

Solve a Maze via Search Northeastern University CS4100 Artificial Intelligence Fall 2017, Derbinsky Solve a Maze via Search By the end of this project you will have built an application that applies graph search to solve a maze,

More information

The Software Stack: From Assembly Language to Machine Code

The Software Stack: From Assembly Language to Machine Code COMP 506 Rice University Spring 2018 The Software Stack: From Assembly Language to Machine Code source code IR Front End Optimizer Back End IR target code Somewhere Out Here Copyright 2018, Keith D. Cooper

More information