• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Don't Miss a Post! Subscribe

  • Guest Posts

Educators Technology

  • Educational AI
  • Edtech Tools
  • Edtech Apps
  • Teacher Resources
  • Special Education
  • Edtech for Kids
  • Buying Guides for Teachers

Educators Technology

Educators Technology

Innovative EdTech for teachers, educators, parents, and students

8 Great Websites for Free Images to Use in Class and School Projects

By Med Kharbach, PhD | Last Update: June 2, 2023

In today’s post, I share with you a collection of some of the best websites where you can access public domain and free images, perfect for enhancing your educational endeavors. Both you and your students will find these resources invaluable.

Beyond the freely available images, each platform also offers premium plans. These come bundled with an array of additional features and perks, should you ever feel the need to level up your visual toolkit.

Remember, though, the importance of examining the licensing requirements before using any materials these websites provide. It’s crucial to ensure you’re abiding by the rules and not unintentionally stepping over any boundaries.

Encouraging students to make it a regular practice to check attribution rights is a must. Familiarizing them with the different types of Creative Commons Licenses is also part of the process.

Check out this handy poster to help students get a grip on the CC terminology . Plus, don’t forget to explore the links at the end of this post for further resources on how to use images appropriately in an educational context. Buckle up, and let’s dive into this treasure trove of free image resources!

You can also check these collections  featuring  digital art maker tools  and  free icons and clip arts   for teachers.

Image Use: Best Practices for Students

Using images effectively and responsibly is a crucial skill for students in the digital age. Here are some best practices:

  • Understand Copyright Laws: Ensure students know the basics of copyright law and why it’s important to respect the rights of image creators. For AI content, check out this guide entitled Is AI Art Copyrighted?
  • Use Licensed Images: Teach students to use images that are licensed for reuse. These can be found on various platforms that offer free or Creative Commons-licensed images.
  • Check Licensing Agreements: Before using an image, always check its licensing agreement. Some images require attribution, while others might have restrictions on commercial use.
  • Provide Proper Attribution: If the image requires it, teach students to give credit to the image’s creator in the specified manner.
  • Use High-Quality Images: Images should be clear and relevant to the material. Blurry or pixelated images can detract from a project rather than enhance it.
  • Be Mindful of Size and Placement: Teach students about the importance of image size and placement. The image should be large enough to see clearly, but not so large that it overwhelms the text or other content.
  • Respect Privacy: If using photos of people, especially in a school setting, privacy must be respected. Permission should be obtained before using someone’s photo, especially if it’s going to be shared publicly.
  • Consider Diversity and Representation: Encourage students to use images that represent diverse individuals and experiences, especially when creating work that will be shared with others.
  • Use Images to Enhance, Not Distract: While images can add a lot to a project, too many images, or images that aren’t relevant to the content, can be distracting. Encourage students to use images sparingly and purposefully.
  • Learn Basic Editing Skills: Basic skills like cropping an image, adjusting its size, or adding text can be very useful. There are many free tools online that can help students learn these skills.

By adhering to these best practices, students can use images effectively in their projects while respecting the rights of image creators.

For clipart resources, check out best free clipart for teachers .

1- Photos for Class

As its name indicates, Photos for Class provides access to a huge library of photos to be used in classrooms and in educational settings. Photos for Class provides provides the following features:

  • “ Age Appropriate Images  – All images are appropriate for the school setting, thanks to Flickr and Pixabay SafeSearch and our proprietary filters.
  • Automatic Citation  – Downloaded images automatically cite the author and the image license terms.
  • Creative Commons  – All photos shown are, to the best of our (and Flickr’s / Pixabay’s) knowledge, licensed by Creative Commons for public use.”

2-  Pics4Learning

Pics4Learning is another great resource that provides free images for educational use.’Teachers and students can use the copyright-friendly photos and illustrations for classroom projects, web sites, videos, portfolios, or any other projects in an educational setting.’

You can search for images using Pics4Learning search functionality or browse its collections which includes History, Music, Oceans, Objects, Plants, Animals, MAPS, Culture, Holidays, GEOGRAPHY, space, Countries, Education and more. Also, note that Pics4learning is a user-generated platform meaning you too can contribute your own images to help other teachers and students use them in their projects.

Another great resource of free images to use in education. Pixabay hosts over 2 million high quality stock photos, videos, illustrators, sound effects, vectors, ad music. As of writing these lines, Pixabay prides itself for making its content ‘safe to use without asking for permission or giving credit to the artist – even for commercial purposes.’

To download media from Pixabay in full resolution you need to sign up. Pixabay, as is the case with google, provides SafeSearch feature allowing you to block inappropriate or explicit content from search results.

Pexels offers you access to some of the best free stock photos for educational use. As of this moment, Pexel’s license guidelines are:

  • ‘All photos and videos on Pexels are free to use.
  • Attribution is not required. Giving credit to the photographer or Pexels is not necessary but always appreciated.
  • You can modify the photos and videos from Pexels. Be creative and edit them as you like.’

5- Unsplash  

Unsplash provides access to a huge library of free re-usable photos. You can browse images by category (e.g., Wallpapers, architecture, experimental, nature, fashion, film, food and drink, and more) or your the search the box to search for specific images. 

“Unsplash grants you an irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.”

Freepik offers a huge library of graphic resources that include free vectors, stock photos, icons, and PSD. Use its search service to search for images and use the drop-down menu on the left to apply different filters (e.g., collections, vectors, photos, Psd, Icons, etc). 

PNGTree offers royalty free PNG images, vectors, backgrounds, templates, text effects and many more. The free plan allows two downloads per day. For more downloads you need a premium plan. 

8- Flaticon  

Flaticon  offers over 6 million vector icons and stickers available in various formats including SVG, EPS, PSD, and BASE64 formats. Flaticon allows users to edit the colour of icons and change their sizes and the best thing of all it provides add-ons for Google Docs, Slides, and Spreadsheets allowing you to easily insert icons into your Google Workspace applications.

1- Finding and using image resources

2- Fair Use Evaluator

3-  Teaching students to legally use images online

4-  Educational use of images, audio, and video

5-  Find free and fair use photos for school

images assignments

Join our mailing list

Never miss an EdTech beat! Subscribe now for exclusive insights and resources .

images assignments

Meet Med Kharbach, PhD

Dr. Med Kharbach is an influential voice in the global educational technology landscape, with an extensive background in educational studies and a decade-long experience as a K-12 teacher. Holding a Ph.D. from Mount Saint Vincent University in Halifax, Canada, he brings a unique perspective to the educational world by integrating his profound academic knowledge with his hands-on teaching experience. Dr. Kharbach's academic pursuits encompass curriculum studies, discourse analysis, language learning/teaching, language and identity, emerging literacies, educational technology, and research methodologies. His work has been presented at numerous national and international conferences and published in various esteemed academic journals.

images assignments

Join our email list for exclusive EdTech content.

10 Photo Assignments to Inspire and Challenge Your Skills

Liz Masoner is a professional photographer and she shares her tips and techniques on photo editing and how to photograph nature, portraits, and events with film and digital cameras. Liz has over 30 years of experience and she is the author of three books on photography.

The best way to learn photography is to practice, though sometimes you can get stuck in a rut and not know what to shoot. That is why photographers love assignments; they give us a purpose and an idea of what to photograph. 

Why Are Assignments Important?

Self-assignments are key to any photographer's growth. Even professionals with decades of experience will work on personal assignments that they may never get paid for. The goal of any self-assignment is to spur creativity, solve problems, learn new techniques, and challenge yourself.

As you start out in photography, you're probably filled with excitement and ready to shoot anything you can. That being said, sometimes a little direction and guidance are necessary.

Below, you will find ten photography assignments. Each covers a new topic, skill, or concept and they were chosen to help you learn how to see as a photographer. They are meant to be a personal challenge that you can complete at your own pace and with no outside judgment, simply as a means to practice and improve your photography. Hopefully, you will learn something new with each assignment and be able to use that in every photograph you take in the future.

Remember when composing your images to keep in mind the basics: the rule of thirds,  shutter speed , aperture,  depth of field , and  exposure .

Assignment #1: Up Close

This assignment encourages you to get close and personal with your subject. It is an exercise in viewing a common object in a new way and examining its finer details.

  • Choose an object that you see or interact with every day.
  • Focus on a small part of it, get as close as your camera will allow you to focus, and shoot away.
  • Try to capture different angles and unusual lighting to add to the mystery of this tiny world.

From the whiskers of your cat to a fragile Christmas ornament, and even common soap bubbles, there is an entire world that we often overlook because we don't get close enough.

Assignment #2: Motion

Photography is a static medium which means that it doesn't move. Conveying a sense of motion is often crucial to capturing a scene or emotion and it is an essential skill for photographers to practice.

The goal of this exercise is to understand how shutter speeds can be used to convey motion.

  • Choose a subject or series of subjects that will allow you to convey motion in your images.
  • It can be slow motions, like that of a turtle, or fast motion, like a speeding train.
  • Blur it, stop it, or simply suggest that there is motion in the photograph.

Challenge yourself to capture the same motion in different ways. For instance, you might go to a race track and stop the movement of the cars completely in one image, then leave the shutter open and allow them to blur out of the frame in the next. 

Assignment #3: Shadows

Shadows are everywhere and they are vital to photography because this is the art of capturing light. With light comes shadows and when you begin to look at shadows as a photographer, your world will open up.

  • Take a look around for shadows and record them with your camera.
  • You could show the shadow as the total focus of the image. Perhaps the shadow is incidental to the subject.
  • Is the shadow natural or created by flash?

Shadows are integral to creating depth in a two-dimensional medium such as photography. Take some time to seriously explore the "dark side" of the light.

Assignment #4: Water

Water is everywhere in photography and it presents many challenges. There are reflections and movements to work with and in this exercise, you will take a deeper look at water.

  • Find water anywhere: lakes, streams, puddles, even the glass on your kitchen table.
  • Pay attention to reflections and use them to your advantage in the photographs. Use this opportunity to get familiar with a polarizing filter (a very useful tool in your camera kit) so you can accentuate or eliminate reflections.
  • Play with the motion of a stream or the crashing waves. Notice the difference between stopping the flow of water and allowing it to blur to create a real sense of movement.

Be sure to make water the subject and not an accent to the image. Water alone is beautiful and mysterious and your challenge is to explore all of its potential as a subject.

Assignment #5: Leading Lines

A classic assignment in photography schools, 'leading lines ' is a popular and fun subject. The goal of this assignment is to learn how to direct the viewer to your subject using lines.

  • Choose a subject then look around for lines in the scene that you can use to 'lead' the viewer to the subject. 
  • Find an interesting line then determine what the subject of your photograph is.
  • Remember that lines can be man-made or natural. For instance, the yellow line down the middle of the road or a tree branch. Even a person's arm can be a leading line of their face.

Use this assignment as an excuse to take an afternoon photo excursion. Walk downtown or in the woods and look around you for interesting lines that lead the eye to a subject. There is an amazing assortment of lines out there in the world and once you begin to see them, you won't be able to stop. 

Assignment #6: Perspective

How do you normally stand when you shoot? If your answer is straight up like a 5-foot-something human being then this assignment is for you. The perspective assignment challenges you to view the world from an entirely new perspective, which in turn gives the viewer a new look at the ordinary.

  • Take another afternoon or evening for a photo excursion wherever you like.
  • This time, every time you find something to photograph, stop!
  • Ask yourself: How would a squirrel see that tree? How would a robin view that birdbath? How would a snake view that log?
  • Take your photographs from very high or very low angles. Get on your belly or stand on a chair, whatever you have to (safely) do to get the 'right' angle on your subject.

If you pay attention to professional photographs, many of the images that have the WOW factor are photographed from extreme angles. People enjoy these photos because they've never seen an object from that viewpoint. It is new and unique, and you can train yourself to shoot with this in mind.

Assignment #7: Texture

You may have captured a few textural details in the 'Up Close' assignment, but this assignment takes that to the next level. The goal in this one is to study textures and forget about the object itself: the texture becomes the subject. You will also begin to realize how light affects the appearance of texture.

  • Find a few objects that have very detailed textures like trees or rocks, even knit sweaters or woven rugs.
  • Photograph them as close as your lens will allow.
  • Use different angles and capture the same texture as the light changes. Notice how the different lighting directions and camera angles can change how much texture appears.

Textures are all around us and many of the best photographs in the world play up the textural element. This assignment should teach you how to recognize and accentuate those elements in your photos.

Assignment #8: Color Harmony

Color is important to photography because the world is full of color. This exercise requires a bit of study in color theory, which you will then put into practice in your photographs.

Do you remember art class in elementary school? You may have learned that yellow and blue make green, but color theory goes beyond that. There are cool and warm colors, complementary and contrasting colors, neutral colors, and bold colors.

It can get quite complicated, and photographers should have a basic understanding of color so you can use that when composing photographs. You don't have to study color like a painter would but can use tricks used by interior designers to influence your color decisions.

  • Once you have an idea of color theory, take another photo excursion and put what you've learned into practice.
  • Capture photographs with the primary or tertiary colors.
  • Look for complementary colors then contrasting colors to photograph.
  • Try finding a scene to photograph that is filled with neutral colors, then one that uses a bold color to 'pop' from the scene.

This is an advanced lesson, but one that any photographer working with color images will find useful. As you practice working with colors, it will become second nature and you will know how to work with color to change the feel of your images.

Assignment #9: Emotions

Take a photo of a person smiling or scowling, right? Not so. The intent of this assignment is to convey emotion in photographs  without  a face.

  • Take photographs that express each of the basic emotions: happy, sad, and mad.
  • How would you express the feeling of anger with no person? What about happiness? Sadness?

This is a purely conceptual assignment, but it is important to be able to relay emotion in your photographs and you might not always have a person available to do that with. Challenge yourself to think deeper about this one.

Assignment #10: Don't Look!

Are you ready to put your photography skills to the test? In today's world of digital cameras and the ability to see image captures right there on the LCD screen, photographers are losing some of the skills needed to visualize a photograph.

In this assignment, your challenge is to shoot as if you were using a film camera. That means that you will not look at the photographs you've taken until they are downloaded on your computer. Instead of relying on the camera's screen to see if you 'got the shot' you will rely on your instinct and knowledge, just like photographers did before digital photography. Can you do it?

  • Plan a photo excursion to a particular location and permit yourself to photograph only 36 images (a roll of 35mm film).
  • Turn off your camera's LCD screen so it does not show you the image after you have taken it.
  • If you cannot turn off the camera's screen, cut a piece of thick paper and tape it over the screen. Use masking or painter's tape so you don't leave a residue on the back of your camera.
  • Go out and shoot your 36 frames, thinking carefully about each image because you don't have an endless number of shots. Bonus points if you turn your camera to completely manual settings for focus and exposure.
  • Don't peek at your photos until you get home and download them.

How did you do? Were you able to get good exposures on your own? How did it feel to be 'blind' and not know how your image turned out right away? 

This is similar to what it is like to shoot with film and it does require you to think harder about every image you take. Next time you shoot, slow down and pay attention, pretend that the screen is not there and rely on your own skills to create a great image. You will be a better photographer in the end.

More from The Spruce Crafts

  • Introduction to Photography: 8 Tips for Beginners
  • A Brief History of Photography and the Camera
  • An Introduction to Photography Exposures
  • The Best Online Drawing Classes of 2024
  • How to Control Depth of Field With F-Stops in Photography
  • Horizontal vs. Vertical Photographs
  • How to Use Point of View to Improve Your Photos
  • What Are the Autofocus Points on a Camera?
  • The Basic Elements of a Camera
  • Learn How to Draw Flowers in Pen, Ink, and Pastel
  • All About Telescope Photography
  • DSLR vs. Point and Shoot Cameras
  • Pros and Cons of Film and Digital Cameras
  • What Are the Different Parts of a Camera Body?
  • The Parts of a Camera Lens
  • 13 Places to Find Free, Printable Wall Art

We’re sorry, but Freepik doesn’t work properly without JavaScript enabled. FAQ Contact

  • Notifications
  • Go back Remove
  • No notifications to show yet You’ll see useful information here soon. Stay tuned!
  • Downloads 0/60 What is this?
  • My collections
  • My subscription

Find out what’s new on Freepik and get notified about the latest content updates and feature releases.

  • Task illustration

Assignment Images

Free vector 3d cartoon style checklist with green checkmark icon. to do list with completed tasks on white background flat vector illustration. success, productivity, management, achievement concept

  • Add to collection
  • Save to Pinterest

Kampus

  • checklist 3d
  • questionnaire

Free photo 3d render smartphone with hand fill online survey

  • phone illustration
  • Phone cartoon

Free PSD checklist indicates pending and completed tasks

  • working illustration

Free vector event management. performance efficiency, time optimization, reminder. task and project deadline flat design element. appointment date reminding.

  • day calendar
  • calendar date
  • work schedule

Free vector task management abstract concept illustration

  • task management
  • calendar app

Vector 3d white clipboard task management todo check list with pen efficient work on project plan fast progress level up concept assignment and exam checklist icon 3d vector render on purple background

  • document 3d

Free vector illustration of document icon

  • productivity

Vector educational mathematical game

  • teamwork hands

Free vector project delivery abstract concept illustration

  • agile development

Vector woman make plan and set task week goals illustration business plan

  • puzzle game
  • matching game

Free photo i can handle multi tasks. cropped shot successful girl typing on keyboard and making notes while looking at computer screen and studying new business graphic. there is no time for rest

  • woman writing
  • woman computer
  • computer typing

Free vector online school platform abstract concept   illustration. homeschooling, online education platform, digital classes, virtual courses, lms for school

  • Teacher cartoon

Vector checklist report illustration in minimal style

  • calendar 3d

PSD targeting quality control approved 3d illustration

  • quality check

Vector document with a sales schedule. statistics, rise. report sheet. clipboard with the work done. page, to do list. profit analysis. magnifier. check mark. blue

  • digital growth
  • forecasting
  • financial chart

Vector completed task list documents in folder

  • corporate training
  • office training
  • employee training

Vector improper element task for kids

  • kids puzzle
  • kindergarten

Vector vertical banner template with hands typing on computer and office supplies. distance education, e-learning, obtaining university degree online. monochrome vector illustration in linear style.

  • video tutorial
  • computer education
  • online education

Vector modern 3d illustration of clipboard with checklist concept

  • digital contract
  • digital signature

Free vector robot doing repeatable tasks with a lot of folders and magnifier. robotic process automation, service robots profit, automated processing concept

  • Robot cartoon

Vector blue target and black arrow logo design for business business goal logo icon element for web mobile or print

  • busy people
  • multitasking

Free vector add tasks concept illustration

  • writing illustration
  • essay writing

Vector vector illustration checklist with pencil burgundy colors icon print

  • problem solution
  • problem solving

Free photo online calendar digital schedule agenda

  • meeting agenda

Free photo woman at work

  • young professional

Vector color book illustration of santa characters

  • christmas santa
  • christmas characters

Free vector busy business people with laptops hurry up to complete tasks at huge clock and hourglass. deadline, project time limit, task due dates concept illustration

  • closed book

Vector 3d render documents icon

  • sticky notes

images assignments

  • A photo Photos   136
  • A stack of folders Collections   757
  • A group of people Users   210

Avatar of user laura adai

Browse premium images on iStock | 20% off at iStock

images assignments

Make something awesome

images assignments

  • Sales: 800-685-3602

Find similar.

1,130,508 results for assignment in all.

Hand writing Assignment with marker, concept background

Choose your region

Selecting a region may change the language and promotional content you see on the Adobe Stock web site.

North America

  • Canada - English
  • Canada - Français
  • El Salvador
  • República Dominicana
  • United States

South America

  • Nicaragua - English
  • Trinidad and Tobago

Asia Pacific

  • Indonesia - English
  • 中華人民共和國澳門特別行政區
  • Malaysia - English
  • New Zealand
  • Philippines
  • Sri Lanka - English
  • Vietnam - English

Creative Educator

  • Tech4Learning

Menu button

Student publishing and creativity platform. Users can search and insert images from Pics4Learning within the application.

Pixie Icon

Software for student publishing and creativity.

Wixie Icon

Online student publishing and creativity platform.

Frames Icon

Create animations, digital stories, and stop-motion.

Share Icon

Create web sites, epubs, and presentations.

These software tools let users search and insert images from Pics4Learning within the application.

Lesson Plan Icon

Lesson Plans

High-level ideas for engaging students and using Pics4Learning images in the classroom.

Creativity Icon

Articles to help build powerful thinking skills with creativity.

Digital Storytelling Icon

Digital Storytelling

Articles and ideas for engaging students with digital storytelling.

21st Century Classrooms Icon

21st Century Classrooms

Articles to help you create a 21st century classroom and build 21st century skills.

Articles, ideas, and lessons for engaging students with technology.

Pics4Learning

Pics4Learning is a curated image library that is safe and free for education. Teachers and students can use the copyright-friendly photos and illustrations for classroom projects, web sites, videos, portfolios, or any other projects in an educational setting.

If your school blocks social sharing sites & links, bookmark Collections for your students.

Help Pics4Learning grow!

Pics4Learning is a user supported collection. Contribute your own images to education's largest image collection! Share an image today, it's quick and easy.

Animals Category

All Collections

More resources to help you find success in your classroom:.

Creative Educator

A free source of strategies to foster creativity, and integrate technology into the classroom.

Rubric Maker

Rubric Maker

Create custom rubrics for your classroom.

Building Literacy Guide

An online student publishing and creativity platform.

Facebook

  • Images home
  • Editorial home
  • Editorial video
  • Premium collections
  • Entertainment
  • Premium images
  • AI generated images
  • Curated collections
  • Animals/Wildlife
  • Backgrounds/Textures
  • Beauty/Fashion
  • Buildings/Landmarks
  • Business/Finance
  • Celebrities
  • Food and Drink
  • Healthcare/Medical
  • Illustrations/Clip-Art
  • Miscellaneous
  • Parks/Outdoor
  • Signs/Symbols
  • Sports/Recreation
  • Transportation
  • All categories
  • Shutterstock Select
  • Shutterstock Elements
  • Health Care
  • Sound effects

PremiumBeat

  • PixelSquid 3D objects
  • Templates Home
  • Instagram all
  • Highlight covers
  • Facebook all
  • Carousel ads
  • Cover photos
  • Event covers
  • Youtube all
  • Channel Art
  • Etsy big banner
  • Etsy mini banner
  • Etsy shop icon
  • Pinterest all
  • Pinterest pins
  • Twitter All
  • Twitter Banner
  • Infographics
  • Zoom backgrounds
  • Announcements
  • Certificates
  • Gift Certificates
  • Real Estate Flyer
  • Travel Brochures
  • Anniversary
  • Baby Shower
  • Mother's Day
  • Thanksgiving
  • All Invitations
  • Party invitations
  • Wedding invitations
  • Book Covers
  • About Creative Flow
  • Start a design

AI image generator

  • Photo editor
  • Background remover
  • Collage maker
  • Resize image
  • Color palettes

Color palette generator

  • Image converter
  • Creative AI
  • Design tips
  • Custom plans
  • Request quote
  • Shutterstock Studios
  • Data licensing

You currently have 0 credits

See all plans

images assignments

Image plans

With access to 400M+ photos, vectors, illustrations, and more. Includes AI generated images!

images assignments

Video plans

A library of 28 million high quality video clips. Choose between packs and subscription.

images assignments

Music plans

Download tracks one at a time, or get a subscription with unlimited downloads.

Editorial plans

Instant access to over 50 million images and videos for news, sports, and entertainment.

Includes templates, design tools, AI-powered recommendations, and much more.

Homework Assignment royalty-free images

31,904 homework assignment stock photos, vectors, and illustrations are available royalty-free for download..

Cheerful female student lying on bed at home and writing on paper while preparing homework assignment Stock Photo

Our company

Press/Media

Investor relations

Shutterstock Blog

Popular searches

Stock Photos and Videos

Stock photos

Stock videos

Stock vectors

Editorial images

Featured photo collections

Sell your content

Affiliate/Reseller

International reseller

Live assignments

Rights and clearance

Website Terms of Use

Terms of Service

Privacy policy

Modern Slavery Statement

Essentials Plan Agreement

Cookie Preferences

Shutterstock.AI

AI style types

Shutterstock mobile app

Android app

© 2003-2024 Shutterstock, Inc.

  • Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

DIGITAL PHOTO MENTOR

Photography tips, tutorials and guides for Beginner and Intermediate Photographers.

10 Creative Photography Assignments to Inspire You Into Action

10 Creative Photography Assignments to Inspire You Into Action

by Andrew S Gibson | Last Updated: November 8, 2022

Finding interesting things to photograph can be one of the most difficult things for a photographer to do.

You’re surrounded by potentially interesting subjects, but you might not realize it if you’re stuck for inspiration. I have been stuck, so I know what that feels like.

The good news is that the world is full of interesting ideas and subjects. All you have to do is find the good ones and develop them into personal photography projects that work for you.

Of course, wouldn’t be easier if you could find lots of ideas in one place?

images assignments

That’s why I wrote an ebook called 100 Creative Photography Assignments . It gives you lots of ideas for projects that you can do close to home, without traveling to exotic locations.

The book is structured into 20 broad themes, with five assignments for each theme.

To give you a taste of what’s in the book, and to help you get inspired into action here are 10 of my favorite assignments. (The theme for each is shown in brackets after the assignment number and name)

Assignment 3: Urban trees (trees)

Humans have planted trees in formal gardens for centuries to bring nature into towns and cities. Photographing trees in urban environments gives you something that is different than traditional landscapes.

How can you explore the juxtaposition of man-made and natural items?

In the photo below, the tree, which is obviously well-cared for fits in perfectly with the historic home. The two go together, as intended.

But in other situations, you might find a jarring contrast between the natural and urban environments. That is called juxtaposition and it can make for some really striking images.

images assignments

Assignment 8: People and the sea (or a lake)

How do people interact with the sea?

The sea has strong links to leisure, sport, and industry, all of which have plenty of potential photographically. Think beyond simple photos of people on summer holidays. How can you explore the relationship between people and water in more depth?

Another approach is to show scale and photograph people in a way that shows the vast size and scope of the ocean. Yet another is to show people battling the weather, perhaps fishermen at sea.

images assignments

Assignment 20: Framed by color (frames)

Some frames are visual rather than literal. One way to make a visual frame is to look for compositions where the main subject is surrounded by a solid block of color, as in the photo below.

images assignments

This is another assignment that tests your observational skills. It also has the potential to make an interesting series. What happens when you group a set of photos that use color as a frame together?

Assignment 24: Weathered surfaces (texture)

Old buildings of all descriptions are made of materials with interesting textures. The definition of old is relative, your chosen building might be hundreds of years old or just a few.

The important thing is that it looks old. That means visible signs of weathering, like the metal wall and wooden door frame in the photo below. Some texture surfaces, like rust, also have interesting colors that you can use to your advantage.

images assignments

Assignment 31: On the outside (buildings)

One approach to photographing buildings is to include as much of the building as possible in the frame. But what happens if you take another approach?

Have you ever stopped to notice the interesting things that people put outside buildings?

In Italy, I found a shrine on the outside of a colorful red building in Venice (below). In the United States window boxes and mailboxes are commonplace. Nearly everywhere you go you’ll see plants in pots outside people’s homes.

All these items make potentially interesting subjects and have the potential to be turned into an interesting series.

images assignments

This assignment gets more interesting when you do it in different places, and compare the things you find outside buildings in one place with those in another location.

Assignment 39: Urban decay (your local neighborhood)

Some buildings can look good for centuries if they’re well maintained. But others soon fall into decay, especially if they’re not kept up. Look for the beauty in decayed or run-down buildings.

You expect older buildings to be in a state of disrepair, especially if you live in a country that has plenty of ruins. But more modern, urban decay can be just as interesting.

Why do modern buildings fall into disrepair? What stories do they tell about their neighborhoods, towns, and cities?

Another approach to this idea is to photograph urban decay in other countries, and then compare the results with what you capture in your local area.

images assignments

Assignment 54: Capture the character of a place (b/w)

The absence of color gives you another way of capturing the character of a place. Yes, it’s true that in some areas color is an essential part of the essence of the place. But in others, it’s less important.

Working in black and white gives you a chance to see through the colors and get to the essence of a place. Visually speaking that’s texture, contrast, and tone.

But in another way, black and white images seem to help you see further and deeper. They’re moody, atmospheric, and timeless. Use these characteristics to create a set of photos that capture the character of a place.

It’s also an assignment you can do when you travel. It’s easier because you get to see everything with fresh eyes. But for a real challenge try it in your local neighborhood, where familiarity can prevent you from seeing things that might be obvious to newcomers.

images assignments

Assignment 62: Embrace hard light (light and shadow)

In this assignment, your brief is to photograph a scene on a sunny day when shadows are falling across the subject in an interesting way.

Look at the way the sun casts shadows across the scene during the day. How do the shadows move as the sun moves across the sky? Do the shadows make interesting shapes?

For example, in the photo below the shadow falling across the building comes from a neighboring house and you can clearly see the chimney.

images assignments

Assignment 71: Signs (everyday objects)

We’re surrounded by signs – signs that tell us which way to go, what to do, that advertise to us, state the name of a business, or tell us about roadworks.

Signs are designed to be informative, but they can also tell a story. Signs in the American mid-west look different from signs in New York City. Signs here in the UK look different from the ones in rural France. Old signs have character and tell you something about the place.

What interesting photos can you make using signs?

images assignments

Assignment 94: People in the landscape (landscape)

Some landscapes are empty or void of visitors. But others are closer to large population centers and therefore you’re more likely to see other people there in the scene. The idea of a pristine landscape untouched by man is appealing, but it’s also interesting to see how people interact with the scene.

One way to approach this assignment is to use people for scale. A human figure can anchor a composition and show the width and breadth of the landscape. A small figure in the frame emphasizes the size of the landscape, and the idea of people being small compared to the beauty of nature.

The photo below juxtaposes two elements of human interaction. The stone pillar is part of a Neolithic settlement, and the people on the right are modern visitors who came to see it.

images assignments

Taking it further – traveling and exploring your archives

You’ll get the most from these assignments if you make new photos for them. They’ll get you thinking about your local neighborhood – and areas a little further afield – in a new way.

The beauty of these assignments is that most of them are repeatable. You can select your favorites and use them as themes to follow when you’re traveling away from home.

You might also find that you can go through your archives and find photos that match a particular assignment. It’s an interesting exercise because you’ll start to see themes and connections that you didn’t realize were there.

images assignments

For example, I have photos that fit Assignment 39: Urban decay from Alaska, Chile, and my hometown (see above). And I can continue to explore this theme when I travel to new places as well.

These ideas are explored further in Creative Photography Assignments: Themes & Projects, a bonus ebook that comes with 100 Creative Photography Assignments.

images assignments

100 Creative Photography Assignments

Buy 100 Creative Photography Assignments now for just $14 USD.

Buy it now and get out there taking photos!

images assignments

Note from Darlene: This is perfect if you want to get out there doing some photography. But maybe due to covid, finances, or other circumstances you can’t currently travel. Look no further than your front door to get started! To really challenge yourself do the 100 assignments one a day for the next 100 days!

' src=

About Andrew S Gibson

Andrew S. Gibson is a writer based in England’s southwest. His interest in photography began when his parents bought him a Ricoh KR-10m camera more than 20 years ago. Since then, he’s taken photos in over 60 countries, studied for a degree in photography, and worked as Technical Editor for EOS magazine. Today, he makes a living helping people make better photos through ebooks and photography courses.

Learn Photography Basics

Yes, you can learn to take better photos! It’s my passion to help you learn the photography basics and take better pictures. It’s also the same reason I teach workshops, do photo travel tours, and have online photography courses available.

Enroll in our free photography basics for beginners course, or 12-part portrait photography course , also free.

Recent Photography Articles

  • Lifestyle Photography Tips for Realistic Portrait Photos
  • Step-by-Step Guide to Making Stunning Portraits With One Light
  • How To Discover and Develop Your Unique Photography Style
  • Luminar Neo GenExpand: Game-Changer or Just Hype?
  • PRO Tips – How To Create Great Looking Professional Headshots

Useful Links

  • Beginner Photography
  • Intermediate Photography
  • Photography Challenges
  • Photography Tips
  • Photo Editing
  • Recommended Amazon Products
  • Course Login
  • Write for Us

©2024 iStockphoto LP. The iStock design is a trademark of iStockphoto LP.

User validation

© 2020, Getty Images. All rights reserved.

images assignments

Taking your event

images assignments

Let us help.

• Event streaming • Event photography... from a distance • Submit your own content and take advantage of Getty Images' distribution

images assignments

High-quality selection

tell your brand's story

We can help

Tell your brand's story through our award-winning editorial feature coverage.

Pay the same price for HD and 4K, and enjoy budget-friendly royalty-free clips with generous usage rights.

End-to-end services

Content representation

Portrait studios

Link to Custom Content

Cut through crowded feeds with our eye-catching social-ready content. Take it one step further and amplify your brand or event with the help of Getty Images' award-winning social feed curators and designers.

From the sidelines

images assignments

Event streaming

images assignments

Submit your own content and take advantage of Getty Images' distribution

images assignments

Virtual photography services

images assignments

Explore Custom Content

images assignments

Your brand has a story to be told. We’re visual storytellers who know how to tell it. Put our talent, reach, and expertise to work for you.

Watch Sizzle Reel

images assignments

Your brand has a message to share. Put our talent, access and expertise to work. Our team of visual storytellers can craft compelling content unique to your brand.

Getty Images Assignments

Getty Images brings your story to life

Clients in nearly every country in the world

Global contributors

Unique visitors to Getty Images' sites each quarter

Picture desk service in London, Sydney, Los Angeles, Buenos Aires, and New York

Media outlets with delivery via direct feeds

Staff photographers

social feeds

Drive organic press pickup and increase brand exposure via exclusive media partnership opportunities and high-caliber celebrity portraiture.

images assignments

some of our

images assignments

Our team can assist with: • Live streaming events • Virtual photography services • Global distribution of your content • Press kits • Creation of branded content • Covid Secure photo/video shoots

images assignments

Click on the logos to view case studies

Our clients

images assignments

FIFA Men's World Cup

Explore Custom Solutions

Editorial Feature Stories

Tap into our vast collections of stills, video, music and sound effects to create new narratives and digital experiences focused on your message and brand.

Look to our archive to tell your modern story

Endless Stories

Once Upon A Time

images assignments

CMT Music Awards

images assignments

VEnice Film Festival

images assignments

Sundance Film Festival

images assignments

Pizza Hut Park City

images assignments

Samsung Galaxy Birthday Party

images assignments

Stranger Things 3 Press Junket

images assignments

Screen Actors Guild Awards

images assignments

IHG Rewards Club Holiday Party

images assignments

Martell Home Live Party

images assignments

Hudson Yards Grand Opening

Work with us

Contact [email protected]

COVID-safe Content

Explore Social Content

images assignments

picture support in London, Sydney and New York

Customers from almost every country in the world

Searches per year on our sites

STAFF PHOTOGRAPHERS

GLOBAL CONTRIBUTORS

images assignments

Experience the excitement and engagement of some of the biggest events in the world with Getty Images. We offer an all-access pass for you to align with - or create your own event content - using up-to-the-minute imagery and video in entertainment, fashion, and pop-culture.

Front Row. Center Stage. Behind the Scenes.

images assignments

Join us for exclusive access to the latest concerts, festivals, special events, award shows, and celebrity sightings. Got a vision of your own? Let’s work together to produce high style brand activations or high quality campaigns.

Be Our Plus One

images assignments

If you’re looking for shareable content (and who isn’t?), Getty Images’ end-to-end solution offers content creation or alignment plus all the distribution, PR and social you need to amplify your efforts.

From Idea to Execution

Generate buzz around your event, sponsorship or launch with Getty Images digital publicity distribution service. Get instant access to exactly the media outlets you need from our global network of print, online and broadcast contacts in arts and entertainment, and luxury fashion.

All the World's Our Stage

Just the name Getty Images, with our 28+ year, unsurpassed reputation, is the assurance you need to promote brand safe event content in your marketing and communications. We handle all the production so you get to market fast and start generating buzz.

On Brand. On Demand.

Make your own events red carpet ready with custom activations. Live, live stream, virtual or hybrid. From script to screen, Getty Images can help bring your vision to life and shoot it with the same team that captures the highest profile events on the planet. Our complete plan includes distribution, PR and social to maximize outreach and engagement for your brand.

Are You Ready For Your Close-up?

Don't miss an opportunity to share the spotlight by highlighting the latest events in your communications. We move content from camera to customer in under 60 seconds so you and your customers can be part of the action.

Check out our entertainment and fashion landing page. Click here to contact customer service for licensing assistance.

Put Yourself

in the frame

The metaverse provides consumers with a new and highly visual way to experience, connect, share and purchase products. With a roster of some of the world’s best photographic talent, unparalleled exclusive access and a track record of technical and creative innovation, you’re in great hands with Getty Images. Whether it’s a 360-degree shoot, a virtual gallery, pioneering pro-level in-game photography or IRL coverage of a virtual event for distribution to the world’s media, we never lose sight of the power of the perfect image and its ability to build connection with your audience.

Storytelling to StoryLiving

Go behind the scenes at Temperley | Explore our 360 Video and VR content | Discover our eSport expertise

images assignments

Save the Date

Creative and Collaboration You Won't Find Anywhere Else

Click here for a complete list of upcoming event coverage and view content from past events. Search by date, event type and region.

Click here to connect with our team.

Click on the images below or click here for more case studies.

The Metaverse

images assignments

CS 2110: Object-Oriented Programming and Data Structures

Assignment 6: interactive image selection, part ii.

In Assignment 5 you developed a graphical application to extract subjects from images by drawing a polygon around them one edge at a time. But that approach is tedious and imprecise for subjects with curved edges. It would be convenient if the program could automatically trace such edges.

Fortunately, there is an algorithm named “intelligent scissors” to do just that, and it is based on finding shortest paths in graphs (which we’ve just covered in lecture). Your task on this assignment is to implement the data structures and algorithms required by “intelligent scissors” and to tune the way it weights edges in its graph so that it works robustly on as many subjects as possible.

Learning Objectives

  • Implement a Priority Queue using a heap and pair it with a Dictionary to support efficient priority changes.
  • Implement Dijkstra’s algorithm to find shortest paths in a weighted graph.
  • Provide polymorphic behavior by implementing multiple subclasses of a parent type and overriding the parent’s behavior.
  • Extend SwingWorker in order to perform an expensive computation concurrently with an interactive GUI.
  • Perform calculations on neighborhoods of pixels in a color image.
  • Experiment with custom weights in the “intelligent scissors” algorithm to more accurately follow edges in images.

Collaboration Policy

On this assignment you may work together with one partner. Having a partner is not needed to complete the assignment: it is definitely do-able by one person. Nonetheless, working with another person is useful because it gives you a chance to bounce ideas off each other and to get their help with fixing faults in your shared code. If you do intend to work with a partner, you must review the syllabus policies pertaining to partners under “programming assignments” and “academic integrity.”

Partnerships must be declared by forming a group on CMSX before starting work. The deadline to form a CMS partnership is Friday, May 3, at 11:59 PM . This is to make sure you are working with your partner on the entire assignment, as required by the syllabus, rather than joining forces part way through.

As before, you may talk with others besides your partner to discuss general course concepts, but you must never show your code to another student who is not your partner. Consulting hours are the best way to get individualized assistance at the source code level if you get stuck diagnosing an issue.

Since A6 is a continuation of A5, we should clarify how the Academic Integrity policy applies to your base code. You are not required to work with same partner on A6 as you did on A5. If you do work with a partner on A6, you may use either of your A5 submissions as a starting point. However, you may not use any other student’s code—at least one partner must be able to assert original authorship of the base code. As usual, both partners must claim joint authorship of all new A6 code and are responsible for understanding and attesting the origin of all code they submit.

Frequently asked questions

Note: This is a brand-new assignment for Spring 2024. Some tasks may be a little unclear at first, but we will try to post fixes and clarifications as these are reported on Ed. Additionally, it may be a few days before the smoketester is deployed (but remember: it doesn’t run any tests that you can’t run yourself).

If needed, there will be a pinned post on Ed where we will collect any clarifications for this assignment. Please review it before asking a new question in case your concern has already been addressed. You should also review the FAQ before submitting to see whether there are any new ideas that might help you improve your solution.

Assignment overview

The end goal (“functional requirements”).

You will extend the Selector application from A5 so that users can choose from among several alternative selection tools. One is the “point-to-point” model from before that connects control points with straight lines, but another will use the “ intelligent scissors ” algorithm to connect control points with a path that tries to follow “edges” in the image. Users can switch between models while building up a selection, allowing them to quickly use straight lines for some segments and to use edge-following paths for others.

Because the “intelligent scissors” algorithm is expensive, a progress bar will let the user know how long they have to wait before adding their next point. The GUI will remain responsive during this time, and the user will have the option to cancel the operation if it is taking too long. All of the features of the original Selector application should continue to work without modification, since they only depend on the SelectionModel supertype.

Screenshot of choosing a selection mode after finishing a selection

There is no unique “best way” for the intelligent scissors algorithm to identify “edges” in an image, and what works well for some images may not work as well for others. You will be provided with a basic “ weight function ” that works well on black-and-white images, but you should experiment with different functions that might perform better. Users will be able to select among all available weight functions when choosing their selection tool.

Intermediate objectives

The “intelligent scissors” algorithm requires data structures and algorithms related to Graphs, which you will be responsible for implementing:

  • You will need to implement Dijkstra’s shortest paths algorithm for a generic Graph. To support the progress bar, you must be able to advance the algorithm incrementally , giving clients a chance to do other work before all vertices have been settled. Clients should be able to use these intermediate results to see which vertices have been discovered and settled and to find paths to any discovered vertices.
  • You will need to implement a Min Priority Queue using a heap . The queue must support efficiently changing an element’s priority, which will accelerate your shortest paths algorithm.

With these in hand, you will implement a new subclass of SelectionModel : ScissorsSelectionModel . Since finding shortest paths in images can be slow, this model will take advantage of the PROCESSING state and will use a SwingWorker (that you will implement) to do the work on a background thread .

The weights of the graph edges considered by Dijkstra’s algorithm should depend on the brightness and color of nearby pixels in the image, but there are multiple ways this could be done. The notion of edge weights has been moved to a separate Weigher type, rather than being part of the Graph interface, and you will try out different ways to define edge weights by implementing your own Weigher classes.

Recommended timeline

  • Day 1: Read the “Assignment overview” and “Preliminaries” sections of this handout. Per these instructions, extract the release code, copy your A5 files on top of it, and make the required changes to this base code. Then complete the tasks in “step 0” to enhance the GUI. If your merged project does not run, seek help from office or consulting hours immediately. And if your A5 submission had bugs, you’ll want to get those fixed.
  • Day 2: Read the handout section on the Intelligent Scissors algorithm. Complete the tasks in “step 1” (implementing ShortestPaths ).
  • Day 3: Read the handout section on SwingWorker . Complete the tasks in “step 2” (implementing ScissorsSelectionModel , including its inner SwingWorker subclass, and updating SelectorApp ).
  • Day 4: Complete the tasks in “step 3” (implementing MinQueue ).
  • Day 5: Read the handout section on edge weights. Complete the tasks in “step 4” (defining an improved weighting function). Note that this step will be worth the fewest points, so focus on getting the preceding ones working before attempting this. Finally, respond to the questions in the reflection document. Have fun using the program to cut out more detailed stickers!

Preliminaries: Updating A5 code

Your A5 submission will serve as the starting point for A6. (If you were not able to produce a submission for A5, reach out to the instructor ASAP.) Most of your work for A6 will be in the new graph and scissors packages, but you will also need to make a few changes to familiar code in the selector package. We recommend the following procedure:

  • Download the A6 release code and open it as a new project in IntelliJ.
  • Copy the files you submitted for A5 (SelectorApp.java, SelectionModel.java, PointToPointSelectionModel.java, and SelectionComponent.java) into the “src/selector” folder of your new A6 project. Check that your app still runs.
  • Make the changes described below (note: these changes are all marked with a “New in A6” or “TODO A6” comment in the A6 release code, which you can reference if there’s any ambiguity).

Changes in selector package

1. add progress bar to selectorapp.

Add the following field to SelectorApp :

Then, in SelectorApp ’s constructor, initialize this field and add it to your frame above the image. For example:

Finally, in setSelectionModel() , listen for “progress” events from the model in addition to “state” events:

You will respond to these new events in TODO A6.0B.

2. Add new painting routines to SelectionComponent

In SelectionComponent.paintComponent() , add the following code at the end of the method. This will let you visualize the processing being performed by fancier selection models. In particular, for “intelligent scissors”, it will highlight which pixels are settled, in the frontier set, or undiscovered as Dijkstra’s algorithm proceeds in real time.

Then define the following new method to actually perform the highlighting (don’t worry if you don’t understand some of the details here, like “clip bounds” and “ARGB”; you can look them up if you like, but they’re not part of this assignment’s learning goals):

For these to compile, you will need the following additional import statements at the top of the file (accepting IntelliJ’s suggestions will probably do the trick):

3. Fix bug in SelectionComponent

The A5 release code contained a bug that did not noticeably affect A5 but could lead to precondition violations in A6, so you’ll need to fix it. In updateMouseLocation() , please subtract 1 from the last argument in each of the clamp() calls. That is, the largest value x may have is width-1 , and the largest value y may have is height-1 . Fixing this ensures that the View will never ask the Model to add a control point that does not correspond to a pixel in the image.

Check that your app still runs (now with an empty progress bar at the top). Now you’re ready to start the new tasks for A6!

Step 0: GUI additions

A6 includes a new implementation of the SelectionModel interface— scissors.ScissorsSelectionModel —and instances are configured with the name of a Weigher algorithm, of which there may be several. Users should be able to choose which model & weight to use when drawing their selection. Note that the models are designed to initialize their state from an existing model when possible (by passing it as a constructor argument), so users can mix-and-match selection tools while tracing a single subject in their image.

A “combo box” is a good way to let users pick from a list of options. Modify your SelectorApp.makeControlPanel() by completing the following TODO:

See the “wireframe” and screenshot above to see how this could look (though you’re afforded some design flexibility here). Test this interactively in your app—while the “intelligent scissors” model isn’t functional yet, you should be able to switch between it and the point-to-point model without losing your point-to-point selection.

Next, turn your attention to your new progress bar. Now that the app is listening for “progress” events, we should respond to those events by making the progress bar move. Additionally, progress bars often have an “indeterminate” mode that shows an animation indicating that work is being done, even though a progress percentage isn’t known. Your app should put the progress bar into “indeterminate” mode whenever its selection model enters its PROCESSING state and leave that mode as soon as it gets a progress update (or leaves the PROCESSING state). Complete the following TODO in propertyChange() (while retaining the existing call to reflectSelectionState() ):

Unfortunately, you won’t be able to appreciate these efforts until you’ve completed ScissorsSelectionModel below, but this gets all of the GUI work out of the way. Now on to graphs!

Step 1: Shortest paths

Intelligent scissors and graphs.

Images are normally considered as matrices (2D arrays) of pixels. We can treat an image as a Graph by considering each of its pixels to be vertices, which are connected to each of their 8 neighbors (including diagonals) with an edge (visualized as connecting the pixels’ centers). Each segment of a selection in an image can therefore be interpreted as a sequence of these edges (i.e., a path in the graph) connecting the pixels on the boundary of the selection. The “intelligent scissors” algorithm simply creates these segments by finding the shortest path in the graph between two user-defined “control point” pixels. And since Dijkstra’s algorithm finds the shortest paths from a starting point to all of the other pixels in the image, once it has been run, it can quickly provide these paths to whatever location the mouse pointer is hovering over, providing the “live wire” feature of our Selector application. The “intelligence” in the algorithm is all about defining the weight of each edge, which will be discussed later. To allow you to experiment with different weight formulas, weights are computed by a separate Weigher object.

We will use a very general Graph interface that provides just enough functionality for running Dijkstra’s algorithm when paired with a compatible Weigher object. The interface has a VertexType type parameter for specifying the type of its vertices, which must be a subclass of Vertex ; Vertex in turn has an EdgeType parameter specifying the type of its edges. Vertices are labeled with an integer ID, which can be more efficient to use than a Vertex object in some situations (and images have a lot of vertices, so efficiency matters). The file “ImageGraph.java” implements the Graph , Vertex , and Edge interfaces for images, providing convenient methods to get a vertex from its pixel location ( x and y coordinates). However, your implementation of Dijkstra’s algorithm should work with any implementation of these interfaces (the provided test suite defines a simple alternative implementation).

Implementing Dijkstra’s algorithm

Study the provided source code in the graph package, especially ShortestPaths and PathfindingSnapshot . Keep in mind that their code in this package should only depend on the Graph , Vertex , and Edge interfaces, not on any of the specifics for image graphs. Pay attention to the fields in ShortestPaths , noting that distances and predecessors are stored in arrays indexed by vertex IDs, rather than in a Map. This is an optimization, as int arrays require less space than collections of objects, and those savings add up when dealing with millions of pixels. Read the MinQueue interface to learn how to interact with the frontier set.

Complete TODO A6.1a by implementing Dijkstra’s algorithm. Note that extendSearch() does not necessarily find all shortest paths in a single invocation; repeated calls may be necessary. This allows clients to pause the search periodically in order to do things like update a progress bar (which you will take advantage of in the next part). Once you have implemented the algorithm, you can start to check your work with the test cases in TestShortestPaths (the distance checks should pass, but the path checks require the next task).

extendSearch() (as well as the findAllPaths() convenience method) returns a PathfindingSnapshot , which can be used to find paths from its starting node to any “discovered” destination node (and if the destination node is “settled”, then the returned path will be the shortest path). Complete TODO A6.1b to compute these paths from the saved data. Check your work by running the full test suite.

Step 2: Intelligent Scissors selection model

Now that you can find shortest paths in graphs, it’s time to turn your attention to images in particular. ScissorsSelectionModel is a subclass of SelectionModel , meaning that it can substitute for PointToPointSelectionModel in your Selector app. Unlike with point-to-point selections, its PolyLine segments will contain many points (so hopefully you didn’t assume straight-line segments in your A5 solution—remember to only assume things guaranteed by the SelectionModel interface).

Read the class invariants for ScissorsSelectionModel ; note in particular that its paths field stores the (final) results from the shortest-paths search starting at the most recently added control point. Based on this, complete TODOs A6.2A and A6.2B (you will find the ImageGraph pathToPolyLine() method helpful) to create selection segments from the last control point to the provided location. Note that you are using the results of shortest paths that have already been solved ; there is no need to solve for new paths until the end of appendToSelection() , where you call findPaths() with the new endpoint to do so.

Note that whenever a new point is added to the selection, shortest paths must be found again using it as the starting point; once they are found, the “live wire” will work as expected. Since finding paths can be slow, we must not perform that work on the EDT. This findPaths() method uses a SwingWorker to do that work on a background thread.

ShortestPathsWorker

The ShortestPathsWorker class will test your understanding of inheritance , scope , and threads , so take some time to study its design. First, it is a subclass of SwingWorker<FinalReturnType, IntermediateResultType> , meaning it can use all of the methods inherited from its superclass and can override some to specialize their behavior. The type parameters indicate the types of the final and intermediate results produced by the worker; in this case, they are both PathfindingSnapshot (which can represent either intermediate or final shortest paths). The methods we will override are doInBackground() (which actually performs the expensive task), process() (which responds to intermediate results) and done() (which handles the final result).

ShortestPathsWorker is also an inner class of ScissorsSelectionModel , which means that it has an implicit reference to the model object that created it and can access all of that model’s fields (even private ones) without qualification, as they are in scope . This makes it convenient for the worker to manipulate its outer object’s state, such as by assigning to paths or firing property change events. But we need to be careful to only do this from Swing’s Event Dispatch Thread, and we need to be careful to avoid having two workers active at the same time.

Finally, ShortestPathsWorker is designed to be a “bridge” that helps two threads communicate, which means you need to pay careful attention to which methods run on which threads, especially since you won’t actually call your overridden methods yourself (remember inversion of control). The process() and done() methods are guaranteed to be called on the EDT, so it is safe for them to access the fields of the outer model object. In contrast, the doInBackground() thread will be called on a separate worker thread, so it must not access its outer model object. It may access the pathfinder field, and it may call inherited methods like setProgress() , publish() , and isCancelled() .

We’d like to avoid having two workers running simultaneously, since we wouldn’t know which one would finish first. This is why the “Finish” button and SelectionComponent mouse listeners are disabled in the PROCESSING state. So long as the worker itself is the only code that will ever transition out of PROCESSING, we prevent other workers from being started before the current one has finished.

Unfortunately, there’s a subtle hole in this solution: if the model is reset , it will transition back to NO_SELECTION immediately. This might be desirable in case your worker encounters an infinite loop, but it requires additional care. This is reflected in the class invariant for the worker field, which must be set to null whenever the model leaves the PROCESSING state. Using this convention, if a worker ever sees that it’s outer model’s worker field doesn’t point to itself, its can return immediately without making any changes to the model.

Implement TODOs A6.2C & A6.2D, following the procedures outlined in the release code.

Thanks to your GUI preparations above, you should be able to test this in your app as soon as you finish implementing your worker! Just choose “intelligent scissors: gray” from your combo box. This gives you a way to visualize the progress of Dijkstra’s algorithm, highlighting the frontier between “settled” and “undiscovered” pixels. Visualizing algorithms can be a great way to improve your understanding of them, and it can also help you spot bugs that aren’t caught by unit tests.

Screenshot of processing a selection modification

Be sure to test all the features of your app: adding points, finishing selections, moving points, cancelling solves, and resetting. It should feel like a robust and responsive application: no error messages, no stalling while browsing menus or resizing the window, and no inconsistent views or behavior. Feel free to use a smaller image for testing in order to speed things up, as the “reference” priority queue implementation you are currently using is quite slow. In fact, that’s what you’ll work on improving next.

It would be great to have a unit test suite for ScissorsSelectionModel , and you are welcome to create your own, using what you’ve learned about wait() and notifyAll() to wait for processing to finish before checking postconditions. But no such suite exists in the release code at this time.

Step 3: Priority queue

The release code for ShortestPaths used a simple class named RefMinQueue to represent the frontier set. But it has a very inefficient addOrUpdate() method that slows down the “intelligent scissors” algorithm considerably. Your next task is to implement HeapMinQueue as a replacement, using a hash table “index” to speed up updates.

Study the provided source code for graph.HeapMinQueue , paying careful attention to its invariants. You will need to implement its methods for adding, removing, and updating elements. We recommend doing so in this order:

  • TODO A6.3A: Implement swap() , which will be useful in future methods and will give you practice maintaining the class invariant (since heap and index need to stay in-sync).
  • TODO A6.3B: Define “bubble up” and “bubble down” helper methods for the binary heap data structure, using swap() to help you maintain the class invariant. Don’t forget to write clear specifications!
  • TODO A6.3C: Implement remove() , with the help of your swap() and “bubble down” methods.
  • TODO A6.3D: Implement add() with the help of your “bubble up” method. You can now run the provided test cases that don’t involve updates.
  • TODO A6.3E: Implement update() and test your work with the provided test cases.

The provided test suite is reasonably thorough, especially when combined with the class’s thorough invariant checks, so you can have high confidence in your implementation when the tests all pass.

Once your priority queue passes the test cases, replace the RefMinQueue with a HeapMinQueue in ShortestPaths and try running your application again. With assertions disabled, it should be much quicker than before!

Asserts and performance

As usual, we recommend running your program with assertions enabled at first, using the -ea VM flag. Remember that IntelliJ enables them by default when running unit tests, but you need to add this flag yourself when running the Selector application. However, the checkInvariant() method of our HeapMinQueue , while very good at catching bugs, is very expensive, which will slow your program to a crawl when working with large images. While this is convenient for checking that your progress bar works, you will probably want to disable assertions for SelectorApp (by removing the -ea VM flag) after a few tests so you can appreciate the speedup provided by your efforts.

Step 4: Edge weights and digital images

Looking back at step 0, what was that “CrossGradMono” you passed to ScissorsSelectionModel ? And how does the model’s pathfinding manage to avoid taking “shortcuts” that cut across your subject most of the time? The answer can be found in the ScissorsWeights class, which houses the different Weigher implementations users should be able to pick from. This class also acts as a factory for Weigher s, allowing them to be created from a string like “CrossGradMono”.

Intuitively, we want edges to have a small weight if they run parallel to a subject boundary and a big weight if they cross a subject boundary. But your weight function doesn’t know what a “subject” is; it is limited to doing math on pixel brightness values. Finding a weight function that is effective for many different kinds of subjects in different kinds of images (think cartoon vs. photograph) is therefore as much a creative endeavour as a technical one.

We provide a sample weight function in the class CrossGradMonoWeight that works reasonably well. To see how it’s motivated, consider a grayscale image, and then imagine that each pixel is a column rising out of the image whose height is proportional to its brightness. The image now looks like a hilly landscape with mountains in the bright portions, valleys where it’s dim, and plains where it’s mid-grey. We would like our selection to follow “ridgelines” in this landscape—that is, we want the slope of the terrain to be gentile in the direction our path is traveling, but steep perpendicular to it. In the language of vector calculus, we want the cross product between our edge direction and the image’s gradient to be high.

Unfortunately, this gives us a quantity that’s a bit backwards—it’s a reward function rather than a cost function in that big numbers are good. But since we’re finding minimum -weight paths, we need big numbers to be bad. Yet we also need edge weights to be non-negative. The solution is to subtract our reward from the maximum possible award. So mathematically, if $G_\text{max}$ represents the steepest slope in the image, $\nabla I$ represents the slope image brightness (in both horizontal and vertical directions), and $\vec{e}$ represents the edge, then our weight function is

$$w_e = |\vec{e}|(G_\text{max} - |\hat{e} \times \nabla I|)$$

(Note that the cost is multiplied by the length of an edge, since diagonal edges are longer than horizontal and vertical ones and should therefore cost more in situations where the perpendicular slope is the same.)

The slope perpendicular to the edge can be approximated by subtracting the brightness of the pixels on either side of the edge, then dividing by how far apart those pixels are, resulting in the math of the crossGrad() function (it only looks ugly because it has to handle 8 different directions; if you draw out a few cases, you’ll see it’s actually pretty simple.)

This formula is a good starting point, but it has some issues. Most notably, it’s “colorblind”—it converts the image to grayscale before applying the above math. If you try your application on the image “challenge_1.png”, you’ll see that it doesn’t follow edges at all—that’s because everything looks like the same shade of gray when the colors are averaged together.

To improve on this, you’ll first need to understand how Java represents color images with its Raster class. Instead of storing a single brightness value at each pixel location, it stores a separate red brightness, green brightness, and blue brightness. Java calls these three distinct brightnesses “bands” (another common name for them is “channels”), so a color image typically has 3 bands: one for red, one for green, and one for blue. The crossGrad() function only considers one band at a time, but you can tell it which band to use (our monochrome weigher only processes band 0, since, in a grayscale image, all of the bands are equal).

Task: An improved Weigher

Your task is to implement an alternative weigher that, at the very least, considers each color band separately so that your app behaves reasonably on the “challenge_1.png” image. Aside from that objective, you can be as creative as you like with this weigher! Think about different ways you could reward edges for following contours in an image, or different ways you could penalize edges that cut across contours. We’ll include a few ideas to consider below.

In order to make use of your new weigher in the app, you’ll need to make changes in a few places. Here’s how we recommend proceeding (TODOs A6.4a–A6.4d):

  • Make a copy of CrossGradMonoWeight within ScissorsWeights and give it your own descriptive class name. In its constructor, delete the code that converts the image to grayscale and instead simply initialize the class’s raster with the one from the graph’s image.
  • Weights must always be non-negative
  • You must be able to compute a weight for any edge in the image without throwing an exception (be careful for edges at the image’s boundaries; note how crossGrad() treats these specially)
  • Your weigher should improve the selection experience with the challenge image
  • Register your weigher with the ScissorsWeights factory so that code can create instances just by knowing its name
  • Modify your combo box in SelectorApp to show your new weigher as an option, alongside the old one. Selecting that option should change the model to a new instance of ScissorsSelectionModel constructed with your new weigher’s name

We look forward to seeing your creativity here! If you’re looking for ideas beyond handling each band separately, here are a few to consider (these all go well beyond the CS 2110 learning objectives—exploring them is just for fun and glory):

  • Apply an “edge-detection” filter, such as a Sobel filter, to a copy of the image. Prefer graph edges that move to pixels with high “edginess”. Java’s ConvolveOp can help here.
  • Approximating slopes by subtracting neighboring pixels tends to produce “noisy” results. Consider blurring a copy of the image and computing slopes using the blurred copy. Java’s ConvolveOp may again be useful.
  • The grayscale used by CrossGradMonoWeight is especially bad because it simply averages all of the bands, yet humans do not see red, green, and blue equally well. Consider making a different grayscale copy of the image that reflects its luminance as perceived by humans (or, for a simpler calculation, its “luma”). Java’s BandCombineOp can help.
  • Compute multiple different costs (or use multiple amounts of blur) and add them together to get the benefits of each.

II. Submission

In “reflection.txt”, estimate the amount of time you spent on this assignment, and answer the verification and reflection questions. Then submit the following files:

  • SelectorApp.java
  • ShortestPaths.java
  • PathfindingSnapshot.java
  • ScissorsSelectionModel.java
  • HeapMinQueue.java
  • ScissorsWeights.java
  • reflection.txt

Good luck, and have fun!

IMAGES

  1. How to Grade Online Assignments and Exams

    images assignments

  2. 4 Benefits of Submitting Your Assignments in PDF Format

    images assignments

  3. Tips to ace your assignment writing tasks

    images assignments

  4. Assignments

    images assignments

  5. Writing Project Management Assignments

    images assignments

  6. Assignment

    images assignments

VIDEO

  1. Image Annotations & Labeling in 2022, THE ULTIMATE GUIDE!

  2. IGNOU ASSIGNMENT JUNE 2024 EXAM @IGNOUalerts #ignouassignment

  3. DEC 2023 Assignment Online Submit होगा या Offline?

  4. Creating an assignment using the Assignment Template

  5. Writer's Workshop: Inserting a Photo in APA Style

  6. Earn 6000 Daily With Online Assignment Work

COMMENTS

  1. Assignment Photos, Download The BEST Free Assignment Stock Photos & HD

    Download and use 1,000+ Assignment stock photos for free. Thousands of new images every day Completely Free to Use High-quality videos and images from Pexels. Photos. Explore. License. Upload. Upload Join. study writing school homework work. Free Assignment Photos. Photos 1.1K Videos 209 Users 172.

  2. 8 Great Websites for Free Images to Use in Class and School Projects

    3- Pixabay. Another great resource of free images to use in education. Pixabay hosts over 2 million high quality stock photos, videos, illustrators, sound effects, vectors, ad music. As of writing these lines, Pixabay prides itself for making its content 'safe to use without asking for permission or giving credit to the artist - even for ...

  3. 10 Photo Assignments to Inspire and Challenge

    Assignment #3: Shadows. Shadows are everywhere and they are vital to photography because this is the art of capturing light. With light comes shadows and when you begin to look at shadows as a photographer, your world will open up. Take a look around for shadows and record them with your camera.

  4. 40 Practical Photography Assignments to Reinspire You

    Then you will push your creative boundaries, and be more likely to make a good photo. #9. Limit yourself to only 36 photos in a day. For this assignment, you're only allowed to take 36 photos in ...

  5. 1,852,400+ Assignment Stock Photos, Pictures & Royalty-Free Images

    Organization and planning assignment stock pictures, royalty-free photos & images. agenda organize with color-coding sticky for time management. Close-up of agenda organize with color-coding sticky notes for time management. Productive schedule for appointments and reminders. Hand holding a yellow highlighter marker.

  6. 102,683 Assignment Images, Stock Photos, 3D objects, & Vectors

    102,683 assignment stock photos, vectors, and illustrations are available royalty-free for download. Find Assignment stock images in HD and millions of other royalty-free stock photos, illustrations and vectors in the Shutterstock collection. Thousands of new, high-quality pictures added every day.

  7. Assignment Images

    Find & Download Free Graphic Resources for Assignment. 282,000+ Vectors, Stock Photos & PSD files. Free for commercial use High Quality Images

  8. 30k+ Assignment Pictures

    Download the perfect assignment pictures. Find over 100+ of the best free assignment images. Free for commercial use No attribution required Copyright-free

  9. Assignment Pictures Pictures, Images and Stock Photos

    Browse 1,375,900+ assignment pictures stock photos and images available, or start a new search to explore more stock photos and images. Young latin student girl smiling happy holding folder at the city. Rear view of young brunette female sitting on white chair in front of computer monitor while looking throguh collection of photos.

  10. Assignment Photos and Premium High Res Pictures

    of 100. United States. Browse Getty Images' premium collection of high-quality, authentic Assignment stock photos, royalty-free images, and pictures. Assignment stock photos are available in a variety of sizes and formats to fit your needs.

  11. 500+ Free Homework & School Images

    502 Free images of Homework. Homework and school high resolution images. Find your perfect picture for your project. a book ... white male 3d model. books stack reading. school book exercise. homework assignments. girl kid study. woman mother daughter. student laptop cup. pages sheets. time clock pointer. cartoon reading boy. children students ...

  12. Explore 28+ Free Assignments Illustrations: Download Now

    28+ Free Assignments Illustrations. Hundreds of stock assignments illustrations to choose from. Free illustration graphics to download. womanwritinglibrary. womanchecklistcheck. boystudyingavatar. colorfuloptimist. notepaperlined paper. codeqrcodecell phone.

  13. Assignment Images

    00:08. 4K HD. of 100 pages. assignment in images assignment in videos assignment in templates assignment in 3D assignment in Premium. Search from thousands of royalty-free Assignment stock images and video for your next project. Download royalty-free stock photos, vectors, HD footage and more on Adobe Stock.

  14. Free Photos for Education

    Free Photos for Education | Pics4Learning. If your school blocks social sharing sites & links, bookmark Collections for your students. Pics4Learning is a user supported collection. Contribute your own images to education's largest image collection! Share an image today, it's quick and easy. Contribute.

  15. Homework Assignment Photos and Images

    Find Homework Assignment stock images in HD and millions of other royalty-free stock photos, 3D objects, illustrations and vectors in the Shutterstock collection. Thousands of new, high-quality pictures added every day.

  16. 10 Creative Photography Assignments to Inspire You Into Action

    For example, I have photos that fit Assignment 39: Urban decay from Alaska, Chile, and my hometown (see above). And I can continue to explore this theme when I travel to new places as well. These ideas are explored further in Creative Photography Assignments: Themes & Projects, a bonus ebook that comes with 100 Creative Photography Assignments.

  17. Student Assignment Photos and Premium High Res Pictures

    Browse Getty Images' premium collection of high-quality, authentic Student Assignment stock photos, royalty-free images, and pictures. Student Assignment stock photos are available in a variety of sizes and formats to fit your needs.

  18. Homework Assignment Pictures, Images and Stock Photos

    Head shot happy little child girl giving high five to affectionate loving father, finishing drawing picture together at home. Smiling young dad celebrating good work done with cute small daughter. of 100. Search from 506,675 Homework Assignment stock photos, pictures and royalty-free images from iStock.

  19. Custom Content

    Let us create powerful, exclusive visuals that connect with your audience like no one else can. On brand. On budget. Only for you. Bring the engine behind Getty Images' content production and operations to your brand. Tap into our global network of 340,000+ creators to develop exclusive content. Custom Content - Getty Images.

  20. Getty Images Assignments

    Getty Images Assignments. Getty Images brings your story to life. Clients in nearly every country in the world. Global contributors. Unique visitors to Getty Images' sites each quarter. Picture desk service in London, Sydney, Los Angeles, Buenos Aires, and New York. Media outlets with delivery via direct feeds. Staff photographers. social feeds ...

  21. Assignment 6: Interactive image selection, part II

    In Assignment 5 you developed a graphical application to extract subjects from images by drawing a polygon around them one edge at a time. But that approach is tedious and imprecise for subjects with curved edges. It would be convenient if the program could automatically trace such edges. ... Images are normally considered as matrices (2D ...

  22. Assignment Photos Photos, Download The BEST Free Assignment Photos

    Download and use 30,000+ Assignment Photos stock photos for free. Thousands of new images every day Completely Free to Use High-quality videos and images from Pexels. Photos. Explore. License. Upload. Upload Join. Free Assignment Photos Photos. Photos 30.3K Videos 4.1K Users 1.5K.

  23. Meeting with St Petersburg Governor Alexander Beglov

    At the beginning of the conversation, Alexander Beglov Beglov Alexander Governor of St Petersburg thanked the President for supporting the city owing to which St Petersburg has been making steady headway as a metropolis of the 21 st century. The Governor informed the President about support measures for the families of the special military operation participants and cooperation with the ...