点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

在这篇文章中,我们将实现如何使用 OpenCV 在 google colaboratory 中进行图像处理。为此,我们应该了解一些 Python 基础知识,下面给出的步骤将帮助我们在 Google Colab 中使用 OpenCV 进行图像处理,这有助于机器学习人工智能。

图像处理的6个步骤:

步骤 1:加载依赖项

我们将加载一些必需的库,例如:Numpy, pandas, cv2, skimage, PIL and Matplotlib。在 Google colab 上加载依赖项:

import numpy as np
import pandas as pd
import cv2 as cv
from google.colab.patches import cv2_imshow
from skimage import io
from PIL import Image
import matplotlib.pylab as plt

第 2 步:从 URL 读取图像

在这一步中,我们将从 URL 中读取图像,并在 google colab 中使用 OpenCV 显示它们,我们将使用以下代码来显示图像。

让我们在 Google colab 上尝试一下,这些是图像的 URL。

urls = ["https://iiif.lib.ncsu.edu/iiif/0052574/full/800,/0/default.jpg",
"https://iiif.lib.ncsu.edu/iiif/0016007/full/800,/0/default.jpg",
"https://placekitten.com/800/571"]
for url in urls:
image = io.imread(url)
image_2 = cv.cvtColor(image, cv.COLOR_BGR2RGB)
final_frame = cv.hconcat((image, image_2))
cv2_imshow(final_frame)
print('\n')

运行上面给出的代码后,上面显示的图像将作为结果显示。请注意读取 RGB 和 BGR 格式的图像时的区别,OpenCV 的默认输入颜色通道采用 BGR 格式。

第 3 步:图像轮廓和直方图

我们将使用以下代码:

print(image.dtype)
print(image.shape[0])
print(image.shape[1])
print(image.shape[2])

然后检查图像矩阵数据类型,图像的高度,图像的宽度,图像的通道数。现在让我们显示彩色图像中所有像素的直方图。

plt.hist(image.ravel(),bins = 256, range = [0,256])
plt.show()

显示R、G、B 通道的直方图。我们可以观察到,绿色通道在 255 中有很多像素,这表示图像中的白色块。

color = ('b','g','r')
for i, col in enumerate(color):
histr = cv.calcHist([image],[i],None,[256],[0,256])
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.show()

现在让我们尝试制作灰度图像,在这里,我们成功地得到了一只猫的灰色图像,绘制灰度图像的直方图。

gray_image = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
cv2_imshow(gray_image)

我们可以观察到图像直方图的频率降低了彩色图像直方图的 1/3。

plt.hist(gray_image.ravel(),bins = 256, range = [0, 256])
plt.show()

第 4 步:灰度变换和直方图均衡化

灰度变换提供了一些对灰度图像进行数学变换的示例。

im2 = 255 - gray_image
cv2_imshow(im2)

这是灰度图像的逆运算,我们可以看到明亮的像素变暗,而暗的像素变亮。

im3 = (100.0/255)*gray_image + 100
cv2_imshow(im3)

在添加常量后,对图像进行另一个变换。所有的像素都变得更亮,并且产生了图像的模糊效果。在这一步骤之后,灰度图像的亮度级别会降低。

第 5 步:灰度图像的傅立叶变换

傅里叶变换用于找到图像的频域,让我们继续使用一段代码,它通过内核大小为 10 的高斯滤波器对灰度图像进行模糊,并将图像变换到频域。

imBlur = cv.blur(gray_image,(5,5))
f = np.fft.fft2(imBlur)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 30*np.log(np.abs(fshift))
plt.subplot(121),plt.imshow(imBlur, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()

步骤 6:通过 FFT 中的高通滤波查找边缘

最后一步演示如何使用高通滤波器去除低频分量,从而生成包含边缘的锐化图像。

rows, cols = imBlur.shape
crow, ccol = round(rows/2) , round(cols/2)
fshift[crow-10:crow+10, ccol-10:ccol+10] = 0
f_ishift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
plt.figure(figsize=([20, 20]))
plt.subplot(131),plt.imshow(imBlur, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(132),plt.imshow(img_back, cmap = 'gray')
plt.title('Image after HPF'), plt.xticks([]), plt.yticks([])
plt.subplot(133),plt.imshow(img_back)
plt.title('Result in JET'), plt.xticks([]), plt.yticks([])
plt.show()

好消息,小白学视觉团队的知识星球开通啦,为了感谢大家的支持与厚爱,团队决定将价值149元的知识星球现时免费加入。各位小伙伴们要抓住机会哦!

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

在 Google Colab 中使用 OpenCV 进行图像处理简介相关推荐

  1. Google Colab中把pyth3.7版本更换成python2.7

    Google Colab中把pyth3.7版本更换成python2.7 1.把python默认版本3.7换成2.7,需要先把pip卸载了,换成2.7后再安装pip,不然后面pip下载安装的包在3.7的 ...

  2. Google colab中常用操作

    Google colab中常用操作 1.执行命令行 1.1 执行python文件 1.2 执行.sh文件 1.3 执行R程序 1.3.1 加载rpy2.ipython 1.3.2 os.system( ...

  3. python怎么编辑文件_关于python:如何在Google Colab中编辑和保存文本文件(.py)?

    我用!git clone https://github.com/llSourcell/Pokemon_GAN.git克隆了一个github repo. 我想在Colab中修改.py文件. 所以我在这里 ...

  4. Google Colab中把pyth3.7版本更换成python3.6(tensorflow1.13)

    1.把python默认版本3.7换成3.6,需要先把pip卸载了,换成3.6后再安装pip,不然后面pip下载安装的包在3.7的包下. #卸载python3.7下的pip !python -m pip ...

  5. 利用colab保存模型_在Google Colab上训练您的机器学习模型中的“后门”

    利用colab保存模型 Note: This post is for educational purposes only. 注意:此职位仅用于教育目的. In this post, I would f ...

  6. 用 Python 使用 Google Colab?岂止是炫酷

    选自Medium 作者:Towards AI Team 机器之心编译 机器之心编辑部 Google Colab 是一个免费的 Jupyter 环境,用户可以用它创建 Jupyter notebook, ...

  7. Google Colab

    选自Medium 作者:Towards AI Team 机器之心编译 机器之心编辑部 原文地址:https://mp.weixin.qq.com/s/XG4FGtwK004e2PoyECDbXQ Go ...

  8. 谷歌 colab_使用Google Colab在Python中将图像和遮罩拆分为多个部分

    谷歌 colab Data labelers use special annotation tools for objects annotation. For example, the Compute ...

  9. 用Python一键批量将任意结构的CSV文件导入 SQLite_用 Python 使用 Google Colab?岂止是炫酷...

    选自Medium 作者:Towards AI Team 机器之心编译 机器之心编辑部 这篇文章教你如何使用 Google Colab,更好地利用免费资源. Google Colab 是一个免费的 Ju ...

最新文章

  1. 过年回家抢票不求人,试试这个开源抢票神器吧!
  2. u盘添加veket linux,veket要怎样才能安在u盘上?
  3. 怎么修改antd mobile中picker样式_修改 iPhone 双信号方法,超级好玩
  4. 姓名和学号 c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好
  5. 预充电电路工作原理_LED触摸调光台灯控制电路板的工作原理
  6. monkey 环境搭建
  7. 用Java语言编写的特殊算法
  8. python之堡垒机(第九天)
  9. 在vs2008工程中制作cab包
  10. php 设置多个html条件_PHP-FPM是个啥
  11. 深入理解计算机系统(3.3)------操作数指示符和数据传送指令
  12. SpringMVC+Spring Data JPA实现增删改查操作
  13. 计算机硬件的基本结构和工作原理
  14. 学成在线(一)项目介绍
  15. AndroidQQ登录接入详细介绍(kotlin搭建)
  16. 视频截图 使用ffmpeg_mencoder
  17. 企业财务分析一头雾水?有了这个财务报表工具,问题一键解决
  18. 跟进分析不一样的MTI商城
  19. BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱
  20. 1167. Anagrammatic Distanc (字符串匹配)

热门文章

  1. 搬箱轮滑再炫技!一个被波士顿动力耽误的机器人
  2. 新款Tesla最低仅售26.2万,马斯克终于凑齐了S3XY
  3. TensorFlow 2.0开发者预览版发布
  4. AI人才抢夺“生猛”: 应届博士年薪涨到80万元
  5. 小米立Flag:要做年轻人的第一个深度学习框架
  6. 企业智能化升级之路:CSDN《2017-2018中国人工智能产业路线图V1.0》重磅发布
  7. Spring Boot 3.0 M1 发布,正式弃用 Java 8,最低要求 Java 17。。。
  8. Elasticsearch 如何做到快速检索 - 倒排索引的秘密
  9. Elastic Job从单点到高可用、同城主备、同城双活
  10. 最强 JDK15 安装与讲解,有点想升级,终于要废弃偏向锁了!