
If you are learning computer vision or working with images in Python, one of the first things you need to know is how to display images.
On a normal computer, OpenCV makes this very easy using:
cv2.imshow()
But the moment you move to Google Colab, everything changes.
Many beginners get confused because the same OpenCV code that works on their PC suddenly stops working in Colab.
That’s exactly why this guide exists.
In this article, you will learn step-by-step how to visualize images in Colab using OpenCV in the correct and modern way.
No confusion. No errors. Just simple working methods.
📌 Table of Contents
- Why Visualizing Images in Colab Is Different
- The Main Problem with OpenCV in Google Colab
- The Correct Way to Visualize Images in Colab
- Step-by-Step Working Example
- Displaying Images from Your Own Dataset
- Showing Multiple Images Together
- Visualizing Grayscale Images
- Drawing on Images and Showing Results
- Common Mistakes and Fixes
- Best Practices
- Alternative Methods
- Helpful Internal Resources
- Conclusion
- FAQs
1. Why Visualizing Images in Colab Is Different
Google Colab is a cloud-based environment. It runs inside your browser.
This makes it amazing for:
- Machine learning
- Deep learning
- Computer vision
- Python experiments
But it also means something important:
👉 You don’t have direct access to your computer’s screen or GUI.
And that is exactly why normal OpenCV display functions don’t work.
2. The Main Problem with OpenCV in Google Colab
On a normal local Python setup, you can display an image like this:
cv2.imshow("Image", img)
cv2.waitKey(0)
This opens a separate desktop window and shows the image.
But in Google Colab:
- There is no desktop
- No popup windows
- No GUI system
So when you try to run cv2.imshow() in Colab, it simply fails.
This is the number one issue people face when learning how to visualize images in Colab using OpenCV.
3. The Correct Way to Visualize Images in Colab
Since we cannot use OpenCV windows in Colab, we use a different tool:
✅ Matplotlib
Matplotlib is a Python library that can display images directly inside notebooks.
This is the standard and recommended method.
The Basic Idea
To correctly display an image in Colab with OpenCV, you must:
- Load the image with OpenCV
- Convert color format
- Display it with matplotlib
Let’s do it step by step.
4. Step-by-Step Working Example
Follow this simple example from start to finish.
Step 1 – Import Libraries
import cv2
import matplotlib.pyplot as plt
These are the only libraries you need.
Step 2 – Get a Sample Image
For testing, let’s download a public image:
!wget https://upload.wikimedia.org/wikipedia/commons/3/3f/JPEG_example_flower.jpg
Step 3 – Read the Image with OpenCV
img = cv2.imread("JPEG_example_flower.jpg")
At this point the image is loaded – but not ready to display yet.
Step 4 – Convert BGR to RGB
This is the MOST important step.
OpenCV loads images in BGR format, but matplotlib expects RGB format.
So we must convert:
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
Without this step, your colors will look completely wrong.
Step 5 – Display the Image
plt.imshow(img_rgb)
plt.axis('off')
plt.show()
🎉 Congratulations!
You have successfully learned the correct way to visualize images in Colab using OpenCV.
5. Displaying Images from Your Own Dataset
Most of the time you won’t use downloaded images. You’ll use your own files.
In Colab you can upload images like this:
from google.colab import files
files.upload()
After uploading:
img = cv2.imread("your_image.jpg")
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img_rgb)
plt.show()
This works perfectly for:
- Personal photos
- Project datasets
- Kaggle images
- AI training data
6. Showing Multiple Images Together
In real projects, you often need to compare images.
For example:
- Before and after processing
- Original vs filtered
- Input vs output
Here is how to show two images side by side:
plt.figure(figsize=(10,5))
plt.subplot(1,2,1)
plt.title("Original")
plt.imshow(img_rgb)
plt.subplot(1,2,2)
plt.title("Gray Version")
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY), cmap='gray')
plt.show()
This technique is extremely useful in computer vision projects.
7. Visualizing Grayscale Images
If you load an image as grayscale:
gray = cv2.imread("JPEG_example_flower.jpg", 0)
You must display it like this:
plt.imshow(gray, cmap='gray')
plt.axis('off')
plt.show()
Without cmap='gray', the image colors will look strange.
8. Drawing on Images and Visualizing
OpenCV is often used to draw shapes like:
- Rectangles
- Circles
- Text
- Bounding boxes
Example:
output = img.copy()
cv2.rectangle(output, (50,50), (200,200), (0,255,0), 3)
output_rgb = cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
plt.imshow(output_rgb)
plt.show()
This is very useful for:
- Object detection
- Face detection
- Annotations
- Image labeling
9. Common Mistakes and Fixes
Let’s cover the most frequent problems.
❌ Problem 1 – Colors Look Wrong
If you do:
plt.imshow(img)
Colors will be blue/purple and strange.
✔ Fix:
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
❌ Problem 2 – Image Not Loading
If:
img is None
That means:
- Wrong file name
- Wrong path
- Image not uploaded
Check files with:
!ls
❌ Problem 3 – Nothing Appears
Always remember to include:
plt.show()
10. Best Practices
When working with images in Colab:
✔ Always convert BGR → RGB
✔ Use matplotlib instead of cv2.imshow
✔ Use plt.axis('off') for clean output
✔ Use subplots for comparisons
✔ Resize large images before display
11. Alternative Methods
Besides matplotlib, you can also use:
A) Colab’s Built-in Function
from google.colab.patches import cv2_imshow
cv2_imshow(img)
This works, but it’s less flexible.
B) IPython Display
from IPython.display import Image
Image("JPEG_example_flower.jpg")
Good for quick previews, but not for processing.
12. Helpful Internal Resources
If you are learning OpenCV and Python projects, you’ll love these guides from our website:
- Advanced Python Projects with Source Code
https://darekdari.com/top-10-advanced-python-projects-with-source-code-free-download/ - Beginner Python Mini Projects
https://darekdari.com/python-mini-projects-with-code-free/
These will help you practice real-world projects after mastering image visualization.
13. Conclusion
Learning how to visualize images in Colab using OpenCV is one of the most important beginner skills in computer vision.
The key takeaway is simple:
👉 cv2.imshow() does NOT work in Colab
Instead, always use this pattern:
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
Master this technique and you can work comfortably with any image project in Google Colab.
🚀 Final Tip
Whenever you work with:
- AI
- Deep learning
- Image processing
- OpenCV projects
This method will be your best friend.
Happy coding!
14. Frequently Asked Questions (FAQs)
1. Why doesn’t cv2.imshow work in Colab?
Because Colab runs in a browser and cannot open desktop windows.
2. What is the best way to show images in Colab?
Using matplotlib with BGR to RGB conversion.
3. Why are OpenCV colors reversed?
Because OpenCV uses BGR instead of RGB.
4. Is cv2_imshow better than matplotlib?
Not really. Matplotlib is more flexible.
5. Do I always need to convert colors?
Yes, when using matplotlib.
6. Can I display videos in Colab?
Yes, by extracting and showing frames.
7. Can I visualize NumPy arrays as images?
Yes, as long as they are valid image matrices.
8. How to show grayscale images correctly?
Use cmap='gray'.
9. Does this work for deep learning outputs?
Absolutely.
10. Can I resize images before display?
Yes, with cv2.resize().
11. Is OpenCV free?
Yes, it is open-source.
12. Can I annotate images in Colab?
Yes, using OpenCV drawing functions.
Final Words
Now you have a clear, beginner-friendly, SEO-optimized guide on:
👉 How to Visualize Images in Colab Using OpenCV

0 Comments