OpenCV 图像处理(一)

本章为 OpenCV 图像入门,主要讲解了如何加载图片,显示图片和保存图片。

读取图像

使用 cv.imread() 函数读取一张图像。

  • cv.IMREAD_COLOR:加载彩色图像,任何图像的透明度都会被忽略,它是默认标志;
  • cv.IMREAD_GRAYSCALE:以灰度模式加载图像;
  • cv.IMREAD_UNCHANGED:加载图像,包括 alpha 通道。

注意

  • 也可以简单分别传递整数1、0或-1,而不是这三个 flag。
python 复制代码
import numpy as np
import cv2 as cv

# 用灰度模式加载图像
img = cv.imread('01.jpg', 0)

注意

图像路径错误,它不会抛出任何错误,但是打印 img 会返回 None

显示图像

cv.imshow() 函数在窗口显示图像,窗口自动适应图像的大小。

  • 参数1:窗口名(str);
  • 参数2:图像

你可以根据需要创建任意数量的窗口,但是窗口名字要不同。

python 复制代码
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

cv.waitKey() 是一个键盘绑定函数,它的参数是以毫秒为单位的时间。该函数为任意键盘事件等待指定毫秒。如果你在这段时间内按下任意键,程序将继续。如果传的是0,它会一直等待键盘按下。它也可以设置检测特定的按键。

cv.destroyAllWindows() 销毁我们创建的所有窗口。如果你想销毁任意指定窗口,应该使用函数 cv.destroyWindow() 参数是确切的窗口名。

注意:

有一种特殊情况,你可以先创建一个窗口然后加载图像到该窗口。在这种情况下,你能指定窗口是否可调整大小。它是由这个函数完成的 cv.namedWindow()。默认情况下,flag 是 cv.WINDOW_AUTOSIZE。但如果你指定了 flag 为 cv.WINDOW_NORMAL,你能调整窗口大小。当图像尺寸太大,在窗口中添加滚动条是很有用的。
代码

python 复制代码
cv.namedWindow('image', cv.WINDOW_NORMAL)
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

保存图像

保存图像,使用函数 cv.imwrite()

  • 参数1:文件名;
  • 参数2:要保存的图像。
python 复制代码
# 将该图像保存为 PNG 格式
cv.imwrite('save.png', img)

总结

下面程序以灰度模式读取图像,显示图像,如果你按下 's' 会保存和退出,或者按下 ESC 退出不保存。

python 复制代码
import numpy as np
import cv2 as cv

img = cv.imread('image.jpg', 0)
cv.imshow('image', img)
k = cv.waitKey(0)
if k == 27: # ESC 
	cv.destroyAllWindows()
elif k == ord('s'): # s
	cv.imwrite('save.png', img)
	cv.destroyAllWindows()

注意:

如果你使用的是 64 位机器,你需要修改 k = cv.waitKey(0)k = cv.waitKey(0) & 0xFF

相关推荐
石榴树下的七彩鱼1 天前
OCR 识别不准确怎么办?模糊 / 倾斜 / 反光图片优化实战(附完整解决方案 + 代码示例)
图像处理·人工智能·后端·ocr·api·文字识别·图片识别
helloworddm2 天前
Vulkan GPU图像处理之对数变换:Kompute框架实战与性能分析
图像处理·人工智能·计算机视觉
石榴树下的七彩鱼2 天前
智能抠图 API 接入实战:3 行代码实现图片自动去背景(Python / Java / PHP / JS)
java·图像处理·人工智能·python·php·api·抠图
youcans_2 天前
【HALCON 实战入门】4. 图像读取、显示与保存
图像处理·人工智能·计算机视觉·halcon
石榴树下的七彩鱼2 天前
图片去水印 API 哪个好?5种方案实测对比(附避坑指南 + 免费在线体验)
图像处理·人工智能·后端·python·api接口·图片去水印·电商自动化
ComputerInBook3 天前
OpenCV图像处理——图像缩放函数 resize
图像处理·opencv·计算机视觉
格林威3 天前
工业视觉检测:OpenCV FPS 正确计算的方式
运维·人工智能·数码相机·opencv·机器学习·计算机视觉·视觉检测
youcans_3 天前
【HALCON 实战入门】2. HALCON 快速入门
图像处理·人工智能·计算机视觉·halcon
熊猫钓鱼>_>3 天前
生成对抗网络(GAN)通俗解析:AI如何学会“无中生有”?
图像处理·人工智能·神经网络·生成对抗网络·ai·gan·博弈
房开民3 天前
OpenCV 中 cv::split() 的最基础用法
人工智能·opencv·计算机视觉