Computer and Machine Vision
|
|
- Georgiana Stevenson
- 6 years ago
- Views:
Transcription
1 Computer and Machine Vision Lecture Week 12 Part-1 Additional Programming Considerations March 29, 2014 Sam Siewert
2 Outline of Week 12 Computer Vision APIs and Languages Alternatives to C++ and OpenCV API for Top- Down Halide MATLAB with CV Toolbox Mathematica Additional 3D Scene Considerations Camera Depth of Field Scene Complexities Receiver Operator Curves for Recognition Performance 3D Scene Capture to Point-Cloud-Models Structure from Motion Methods Sam Siewert 2
3 Major Concepts Post Production Digital Video Frame Processing Pipeline Movie! 1. Acquire, Decode, or Read Frame Files 2. Apply Transforms Simple (Brightness), Convolution (Edge Enhancement), Color Edit, 3. Add CGI Generate Computer Generated Imagery with Rendering 4. Composite Frame with Alpha Blending or Green Screen Human Characters into CGI Background 5. Encode Frames into MPEG Linux Tools Used Today ffmpeg a.k.a avconv, OpenCV, Pixie (Renderman), Python Scripting to Coordinate file-to-tool-to-file RenderMan Pixie MPEG ffmpeg Raw Frames OpenCV Composite Frames ffmpeg Sam Siewert 3
4 Major Concepts Video Analytics Computer Vision Pipeline Find Bad Guy! 1. Acquire, Decode, or Read Frame Files 2. Apply Transforms Simple (Brightness), Convolution (Edge Enhancement), False Color, Segment, 3-D Correspondence, SIFT, AdaBoost 3. Match to Recognition Database (Facial) 4. Present to User Linux Tools Used Today ffmpeg a.k.a avconv, OpenCV, Python Scripting to Coordinate file-to-tool-to-file MPEG MPEG ffmpeg ffmpeg Raw Frames OpenCV Multicore Sam Siewert 4
5 Observations APIs Support Building Tools Many Tools Lead to File to File Processing Pipelines File to File is Much Slower than Buffer to Buffer However, File to File Scales with Clusters! Buffer to Buffer Scales with Clusters With MPI or Shared Memory Multi-Core Could Scripting Coordination of File to File Be Replaced with a Language? Could the Language Optimize Use of Buffers (Locality) and Parallel and Vector Processing Hardware Features? Frees Programmer to Explore Options Halide Potential Option Sam Siewert 5
6 Brighten, Contrast Transform Compare P = clamp[ Q*alpha + beta] Very Simple Scale Each Pixel Brightness Increase/Decrease Bias Each Pixel Contrast Increase/Decrease Make Sure Result Does Not Exceed Saturation Compare C++ OpenCV API and Halide C++ Extension Sam Siewert 6
7 C Code PPM Brightness/Contrast #define PIXIDX ((i*col*chan)+(j*chan)+k) #define SAT (255) void main(int argc, char *argv[]) char header[512]; unsigned char img[640*480*3], newimg[640*480*3]; int bufflen, hdrlen; unsigned row=0, col=0, chan=0, pix; int i, j, k; double alpha=1.25; unsigned char beta=25; header[0]='\0'; readppm(img, &bufflen, header, &hdrlen, &row, &col, &chan, argv[1]); for(i=0; i < row; i++) for(j=0; j < col; j++) for(k=0; k < chan; k++) newimg[pixidx] = (pix=(unsigned)((img[pixidx])*alpha)+beta) > SAT? SAT : pix; writeppm(newimg, bufflen, header, hdrlen, "brighter.ppm"); Sam Siewert 7
8 OpenCV C++ API Brighten/Contrast #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> using namespace cv; using namespace std; double alpha=1.0; int beta=10; /* contrast and brightness control */ int main( int argc, char** argv ) Mat image = imread( argv[1] ); // read in image file Mat new_image = Mat::zeros( image.size(), image.type() ); std::cout<<"* Enter alpha brighten factor [ ]: ";std::cin>>alpha; std::cout<<"* Enter beta contrast increase value [0-100]: "; std::cin>>beta; // Do the operation new_image(i,j) = alpha*image(i,j) + beta for( int y = 0; y < image.rows; y++ ) for( int x = 0; x < image.cols; x++ ) for( int c = 0; c < 3; c++ ) new_image.at<vec3b>(y,x)[c] = saturate_cast<uchar>( alpha*( image.at<vec3b>(y,x)[c] ) + beta ); Loop through Rows, Columns, and Color Channels to Apply Dereference Pixel at X,Y for each Color namedwindow("original Image", 1); namedwindow("new Image", 1); imshow("original Image", image); imshow("new Image", new_image); waitkey(); return 0; Sam Siewert 8
9 Halide Brighten/Contrast // Adapted from Halide tutorial lesson 2. #include <Halide.h> using Halide::Image; #include "../apps/support/image_io.h" int main(int argc, char **argv) Halide::Image<uint8_t> input = load<uint8_t>(argv[1]); Halide::Func brighter; Halide::Var x, y, c; Halide::Expr value = input(x, y, c); value = Halide::cast<float>(value); value = value * 1.5f; value = Halide::min(value, 255.0f); value = Halide::cast<uint8_t>(value); brighter(x, y, c) = value; Halide::Image<uint8_t> output = brighter.realize(input.width(), input.height(), input.channels()); save(output, "brighter.png"); No loop specification, just transform function, so Halide can optimize locality, vector processing and multi-core features. return 0; Sam Siewert 9
10 Halide Overview Decouples Pipeline Specification (Buffer-to-Buffer) and Optimization Built on LLVM and Clang Extensions to C/C++ and Embedding Extension to C++ with Use of Operator Overloading Watch Video Overview on Web Alternatives 1. APIs OpenCV, OpenNI (for C++, Python, Java) 2. Interactive VHLLs MATLAB CV Toolbox, Mathematica 3. IDL Interactive Data Language Discuss API vs. Specialize Language? Sam Siewert 10
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 informationMultimedia 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 informationOpenCV. 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 informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 12 Part-2 Additional 3D Scene Considerations March 29, 2014 Sam Siewert Outline of Week 12 Computer Vision APIs and Languages Alternatives to C++ and OpenCV API
More informationImage Steganalysis Image Steganography
//Joshua Tracy #include #include #include "opencv2/opencv.hpp" #include #include #include #include using
More informationMultimedia 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 informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 4 Part-2 February 5, 2014 Sam Siewert Outline of Week 4 Practical Methods for Dealing with Camera Streams, Frame by Frame and De-coding/Re-encoding for Analysis
More informationCS 376b Computer Vision
CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves
More informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 5 Part-2 February 13, 2014 Sam Siewert Outline of Week 5 Background on 2D and 3D Geometric Transformations Chapter 2 of CV Fundamentals of 2D Image Transformations
More information19.1. Unit 19. OpenMP Library for Parallelism
19.1 Unit 19 OpenMP Library for Parallelism 19.2 Overview of OpenMP A library or API (Application Programming Interface) for parallelism Requires compiler support (make sure the compiler you use supports
More informationPROGRAMMING IN C++ CVIČENÍ
PROGRAMMING IN C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com REQUIREMENTS FOR COURSE CREDIT Basic requirements
More informationEE795: Computer Vision and Intelligent Systems
EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 WRI C225 Lecture 02 130124 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Basics Image Formation Image Processing 3 Intelligent
More informationOpenCV 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 informationAnnouncements. CSCI 334: Principles of Programming Languages. Lecture 18: C/C++ Announcements. Announcements. Instructor: Dan Barowy
CSCI 334: Principles of Programming Languages Lecture 18: C/C++ Homework help session will be tomorrow from 7-9pm in Schow 030A instead of on Thursday. Instructor: Dan Barowy HW6 and HW7 solutions We only
More informationOpenCV 비디오처리 김성영교수 금오공과대학교 컴퓨터공학과
OpenCV 비디오처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 Reading video sequences Seeking video sequences Writing video sequences Foreground extraction 2 Reading video sequences VideoCapture: class for video capturing from
More informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 5 Part-1 February 13, 2014 Sam Siewert Outline of Week 5 Background on 2D and 3D Geometric Transformations Chapter 2 of CV Fundamentals of 2D Image Transformations
More informationComputer Vision Course Lecture 04. Template Matching Image Pyramids. Ceyhun Burak Akgül, PhD cba-research.com. Spring 2015 Last updated 11/03/2015
Computer Vision Course Lecture 04 Template Matching Image Pyramids Ceyhun Burak Akgül, PhD cba-research.com Spring 2015 Last updated 11/03/2015 Photo credit: Olivier Teboul vision.mas.ecp.fr/personnel/teboul
More informationModern 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 informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 10 Part-2 Skeletal Models and Face Detection March 21, 2014 Sam Siewert Outline of Week 10 Lab #4 Overview Lab #5 and #6 Extended Lab Overview SIFT and SURF High
More informationCSE 12 Spring 2016 Week One, Lecture Two
CSE 12 Spring 2016 Week One, Lecture Two Homework One and Two: hw2: Discuss in section today - Introduction to C - Review of basic programming principles - Building from fgetc and fputc - Input and output
More informationCS A490 Machine Vision and Computer Graphics
CS A490 Machine Vision and Computer Graphics Lecture 1 - Introduction August 28, 2012 Sam Siewert Sam Siewert UC Berkeley National Research University, Philosophy/Physics 1984-85 University of Notre Dame,
More informationIntroduction 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 information1. 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 informationEMBEDDED SYSTEMS PROGRAMMING Language Basics
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Language Basics (PROGRAMMING) LANGUAGES "The tower of Babel" by Pieter Bruegel the Elder Kunsthistorisches Museum, Vienna ABOUT THE LANGUAGES C (1972) Designed to replace
More informationCS A485 Computer and Machine Vision
CS A485 Computer and Machine Vision Lecture 1 Introduction Part-2 January 14, 2014 Sam Siewert Biological Vision vs. Machine Vision (Why A Honey Bee is Better than HPC for CV) Humans - 100 million Photoreceptors
More information2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT
COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Hello world : a review Some differences between C and C++ Let s review some differences between C and C++ looking
More informationPraktikum: 4. Content of today s lecture. Content of today s lecture. Manfred Grove Houxiang Zhang. Program introduction. Program introduction
18.272 Praktikum: 4 Telebot system environment Lecturers Manfred Grove Houxiang Zhang TAMS, Department t of Informatics, Germany @Tams group Institute TAMS s http://tams-www.informatik.uni-hamburg.de/hzhang
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More informationManfred Grove Houxiang Zhang
Praktik kum: 4 Telebot system environment Lecturers Manfred Grove Houxiang Zhang TAMS, Department of Informatics, Germany @Tams group Institute TAMS s http://tams-www.informatik.uni-hamburg.de/hzhang 1
More informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 7 Part-1 (Convolution Transform Speed-up and Hough Linear Transform) February 26, 2014 Sam Siewert Outline of Week 7 Basic Convolution Transform Speed-Up Concepts
More informationTemplates, Image Pyramids, and Filter Banks
Templates, Image Pyramids, and Filter Banks Computer Vision James Hays, Brown Slides: Hoiem and others Reminder Project due Friday Fourier Bases Teases away fast vs. slow changes in the image. This change
More informationIMPLEMENTATION 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 informationImage 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 informationCS 315 Data Structures Fall Figure 1
CS 315 Data Structures Fall 2012 Lab # 3 Image synthesis with EasyBMP Due: Sept 18, 2012 (by 23:55 PM) EasyBMP is a simple c++ package created with the following goals: easy inclusion in C++ projects,
More informationLab#5 Due Wednesday, February 25, at the start of class. Purpose: To develop familiarity with C++ pointer variables
Lab#5 Due Wednesday, February 25, at the start of class Purpose: To develop familiarity with C++ pointer variables Introduction: In this lab, you will learn by experimentation the answers to some questions
More informationCS 3305 Intro to Threads. Lecture 6
CS 3305 Intro to Threads Lecture 6 Introduction Multiple applications run concurrently! This means that there are multiple processes running on a computer Introduction Applications often need to perform
More informationCSE 12 Spring 2018 Week One, Lecture Two
CSE 12 Spring 2018 Week One, Lecture Two Homework One and Two: - Introduction to C - Review of basic programming principles - Building from fgetc and fputc - Input and output strings and numbers - Introduction
More informationBasic Graphics Programming
15-462 Computer Graphics I Lecture 2 Basic Graphics Programming Graphics Pipeline OpenGL API Primitives: Lines, Polygons Attributes: Color Example January 17, 2002 [Angel Ch. 2] Frank Pfenning Carnegie
More informationstanford hci group / cs377s Lecture 8: OpenCV Dan Maynes-Aminzade Designing Applications that See
stanford hci group / cs377s Designing Applications that See Lecture 8: OpenCV Dan Maynes-Aminzade 31 January 2008 Designing Applications that See http://cs377s.stanford.edu Reminders Pick up Assignment
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationRT Digital Media Extended Lab Choose One: Work Alone Work in a Pair Extra Work Required 3 or More Students May Collaborate, but Submissions must be Un
ECEN 5033 RT Digital Media Systems Lecture 10 Extended Lab Background March 31, 2008 Sam Siewert RT Digital Media Extended Lab Choose One: Work Alone Work in a Pair Extra Work Required 3 or More Students
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes
More informationThreaded Programming. Lecture 9: Alternatives to OpenMP
Threaded Programming Lecture 9: Alternatives to OpenMP What s wrong with OpenMP? OpenMP is designed for programs where you want a fixed number of threads, and you always want the threads to be consuming
More informationIntroduction 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 informationAssumptions. History
Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand
More informationCSE 100: STREAM I/O, BITWISE OPERATIONS, BIT STREAM I/O
CSE 100: STREAM I/O, BITWISE OPERATIONS, BIT STREAM I/O PA2: encoding/decoding ENCODING: 1.Scan text file to compute frequencies 2.Build Huffman Tree 3.Find code for every symbol (letter) 4.Create new
More informationPervasive Computing offers Adaptable Interfaces
Pervasive Computing offers Adaptable Interfaces Signals, Standards, Metadata, and ICADI June 26, 2003 This has already gone live Elite Care - Elder Care Delivery Wired residential buildings Locator badges,
More informationRepresentation of image data
Representation of image data Images (e.g. digital photos) consist of a rectanglular array of discrete picture elements called pixels. An image consisting of 200 pixels rows of 300 pixels per row contains
More informationJava Basic Syntax. Java vs C++ Wojciech Frohmberg / OOP Laboratory. Poznan University of Technology
Java vs C++ 1 1 Department of Computer Science Poznan University of Technology 2012.10.07 / OOP Laboratory Outline 1 2 3 Outline 1 2 3 Outline 1 2 3 Tabular comparizon C++ Java Paradigm Procedural/Object-oriented
More informationMore on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8
More on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #7 due today Lab #4 is due on Monday at 8:00
More informationCE221 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 informationMPI 1. CSCI 4850/5850 High-Performance Computing Spring 2018
MPI 1 CSCI 4850/5850 High-Performance Computing Spring 2018 Tae-Hyuk (Ted) Ahn Department of Computer Science Program of Bioinformatics and Computational Biology Saint Louis University Learning Objectives
More informationOpenGL/GLUT Intro. Week 1, Fri Jan 12
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner OpenGL/GLUT Intro Week 1, Fri Jan 12 http://www.ugrad.cs.ubc.ca/~cs314/vjan2007 News Labs start next week Reminder:
More informationOverloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6
Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB A reminder about Labs Announcements Please make sure you READ
More informationLab 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 informationShared Memory Architectures
Shared Memory Architectures Chris Kauffman CS 499: Spring 2016 GMU Logistics Today Shared Memory Architecture Theory/Practicalities Cache Performance Effects Next Week: OpenMP for shared memory machines
More informationOverview of OpenMP. Unit 19. Using OpenMP. Parallel for. OpenMP Library for Parallelism
19.1 Overview of OpenMP 19.2 Unit 19 OpenMP Library for Parallelism A library or API (Application Programming Interface) for parallelism Requires compiler support (make sure the compiler you use supports
More information1/12/11. Basic Graphics Programming. What is OpenGL. OpenGL is cross-platform. How does OpenGL work. How does OpenGL work (continued) The result
CSCI 480 Computer raphics Lecture 2 asic raphics Programming What is OpenL A low- level graphics API for 2D and 3D interac
More informationCall-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5
Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS!
More informationCS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley.
CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 1/23/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L03 Introduction to C (1) Administrivia
More informationProgramming for Image Analysis/Processing
Computer assisted Image Analysis VT04 Programming for Image Analysis/Processing Tools and guidelines to write your own IP/IA applications Why this lecture? Introduction To give an overview of What is needed
More informationCS103 Lecture 1 Slides. Introduction Mark Redekopp
1 CS103 Lecture 1 Slides Introduction Mark Redekopp 2 What is Computer Science All science is computer science It is very interdisciplinary: Math, Engineering, Medicine, Natural sciences, Art, Linguistics,
More informationComputer and Machine Vision
Computer and Machine Vision Deeper Dive into MPEG Digital Video Encoding January 22, 2014 Sam Siewert Reminders CV and MV Use UNCOMPRESSED FRAMES Remote Cameras (E.g. Security) May Need to Transport Frames
More informationLecture 5 Files and Streams
Lecture 5 Files and Streams Introduction C programs can store results & information permanently on disk using file handling functions These functions let you write either text or binary data to a file,
More informationC++ For Science and Engineering Lecture 12
C++ For Science and Engineering Lecture 12 John Chrispell Tulane University Monday September 20, 2010 Comparing C-Style strings Note the following listing dosn t do what you probably think it does (assuming
More informationProject 1: Convex hulls and line segment intersection
MCS 481 / David Dumas / Spring 2014 Project 1: Convex hulls and line segment intersection Due at 10am on Monday, February 10 0. Prerequisites For this project it is expected that you already have CGAL
More informationHW3a solution. L1 implies there must be an f1 in Base L2 implies there must be an f2 in Base. So we know there is an f1 and f2 in Base
HW 3 Solution int main(int argc, char **argv) { Base *b = new Base( ); Derived *d = new Derived( ); b->f1( ); // prints "Base f1" L1 b->f2( ); // prints "Base f2" L2 d->f1( ); // prints "Base f1" L3 d->f2(
More informationLooping and Counting. Lecture 3 Hartmut Kaiser hkaiser/fall_2012/csc1254.html
Looping and Counting Lecture 3 Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html Abstract First we ll discuss types and type safety. Then we will modify the program
More informationECE 661 HW_4. Bharath Kumar Comandur J R 10/02/2012. In this exercise we develop a Harris Corner Detector to extract interest points (such as
ECE 661 HW_4 Bharath Kumar Comandur J R 10/02/2012 1 Introduction In this exercise we develop a Harris Corner Detector to extract interest points (such as corners) in a given image. We apply the algorithm
More informationImage 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 informationRed Hat Developer Tools
Red Hat Developer Tools 2018.4 Using Clang and LLVM Toolset Installing and Using Clang and LLVM Toolset Last Updated: 2018-11-29 Red Hat Developer Tools 2018.4 Using Clang and LLVM Toolset Installing
More informationCP SC 4040/6040 Computer Graphics Images. Joshua Levine
CP SC 4040/6040 Computer Graphics Images Joshua Levine levinej@clemson.edu Lecture 03 File Formats Aug. 27, 2015 Agenda pa01 - Due Tues. 9/8 at 11:59pm More info: http://people.cs.clemson.edu/ ~levinej/courses/6040
More informationOpenGL refresher. Advanced Computer Graphics 2012
Advanced Computer Graphics 2012 What you will see today Outline General OpenGL introduction Setting up: GLUT and GLEW Elementary rendering Transformations in OpenGL Texture mapping Programmable shading
More informationC++ Code Structure. Cooperating with the Compiler
C++ Code Structure Cooperating with the Compiler C / C++ Compilation In Java (and many other modern languages), the compiler is designed to make multiple passes over code files during compilation. In doing
More informationReal-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting
Last Time? Real-Time Shadows Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes Why are Shadows Important? Depth
More informationLAB #8. GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:
LAB #8 Each lab will begin with a brief demonstration by the TAs for the core concepts examined in this lab. As such, this document will not serve to tell you everything the TAs will in the demo. It is
More informationMaya tutorial. 1 Camera calibration
Maya tutorial In this tutorial we will augment a real scene with virtual objects. This tutorial assumes that you have downloaded the file Maya.zip from the course web page and extracted it somewhere. 1
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 2 Introduction to the C Programming Language (pt 1) 2010-06-22!!!Instructor Paul Pearce! There is a handout at the front of the room! Please
More informationAbstract Data Types. Lecture 05 Summary. Abstract Data Types Structures in C 1/26/2009. Slides by Mark Hancock (adapted from notes by Craig Schock)
Abstract Data Types 1 Lecture 05 Summary Abstract Data Types Structures in C 2 1 By the end of this lecture, you will be able to describe the main components of an abstract data type. You will also be
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationThe Data may not be disclosed or distributed to third parties, in whole or in part, without the prior written consent of Motion Workshop.
C API Reference Motion Version 2.6 www.motionnode.com www.motionshadow.com Copyright c 2017 Motion Workshop. All rights reserved. The coded instructions, statements, computer programs, and/or related material
More informationTesting, code coverage and static analysis. COSC345 Software Engineering
Testing, code coverage and static analysis COSC345 Software Engineering Outline Various testing processes ad hoc / formal / automatic Unit tests and test driven development Code coverage metrics Integration
More informationReal-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!
Last Time? Real-Time Shadows Perspective-Correct Interpolation Texture Coordinates Procedural Solid Textures Other Mapping Bump Displacement Environment Lighting Textures can Alias Aliasing is the under-sampling
More informationLAB #8. Last Survey, I promise!!! Please fill out this really quick survey about paired programming and information about your declared major and CS.
LAB #8 Each lab will begin with a brief demonstration by the TAs for the core concepts examined in this lab. As such, this document will not serve to tell you everything the TAs will in the demo. It is
More informationDNA Sequence Reads Compression
DNA Sequence Reads Compression User Guide Release 2.0 March 31, 2014 Contents Contents ii 1 Introduction 1 1.1 What is DSRC?....................................... 1 1.2 Main features.......................................
More informationComputer Vision with MATLAB MATLAB Expo 2012 Steve Kuznicki
Computer Vision with MATLAB MATLAB Expo 2012 Steve Kuznicki 2011 The MathWorks, Inc. 1 Today s Topics Introduction Computer Vision Feature-based registration Automatic image registration Object recognition/rotation
More informationCSCE574 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 informationComputational Physics Operating systems
Computational Physics numerical methods with C++ (and UNIX) 2018-19 Fernando Barao Instituto Superior Tecnico, Dep. Fisica email: fernando.barao@tecnico.ulisboa.pt Computational Physics 2018-19 (Phys Dep
More informationTwo s Complement Review. Two s Complement Review. Agenda. Agenda 6/21/2011
Two s Complement Review CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part I) Instructor: Michael Greenbaum http://inst.eecs.berkeley.edu/~cs61c/su11 Suppose we had
More informationLast Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization
Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility
More informationComputer Graphics (Basic OpenGL)
Computer Graphics (Basic OpenGL) Thilo Kielmann Fall 2008 Vrije Universiteit, Amsterdam kielmann@cs.vu.nl http://www.cs.vu.nl/ graphics/ Computer Graphics (Basic OpenGL, Input and Interaction), ((57))
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationCS427 Multicore Architecture and Parallel Computing
CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:
More informationUlf Assarsson Department of Computer Engineering Chalmers University of Technology
Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Tracing Photons One way to form an image is to follow rays of light from a point source finding which rays enter the lens
More informationBiostatistics 615/815 Lecture 22: Matrix with C++
Biostatistics 615/815 Lecture 22: Matrix with C++ Hyun Min Kang December 1st, 2011 Hyun Min Kang Biostatistics 615/815 - Lecture 22 December 1st, 2011 1 / 33 Recap - A case for simple linear regression
More informationME132 February 3, 2011
ME132 February 3, 2011 Outline: - active sensors - introduction to lab setup (Player/Stage) - lab assignment - brief overview of OpenCV ME132 February 3, 2011 Outline: - active sensors - introduction to
More informationComputer and Machine Vision
Computer and Machine Vision Lecture Week 11 Part-2 Segmentation, Camera Calibration and Feature Alignment March 28, 2014 Sam Siewert Outline of Week 11 Exam #1 Results Overview and Solutions Wrap up of
More informationCS61C : Machine Structures
Get your clickers ready...! inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 3 Introduction to the C Programming Language (pt 1) 2013-01-28! Hello to Nishant Varma watching from India!!!Senior
More informationAn introduction to Halide. Jonathan Ragan-Kelley (Stanford) Andrew Adams (Google) Dillon Sharlet (Google)
An introduction to Halide Jonathan Ragan-Kelley (Stanford) Andrew Adams (Google) Dillon Sharlet (Google) Today s agenda Now: the big ideas in Halide Later: writing & optimizing real code Hello world (brightness)
More information