OpenCV 入门实例
接下来我们来看一个简单的 OpenCV 实例,我们将实现以下功能:
读取一张图像。
显示图像。
保存图像。
添加简单的用户交互。
可以以以下图片为例:
以下代码保存在 display_image.py 文件中:
实例
# 导入 OpenCV 库
import cv2
# 1. 读取图像
# 替换为实际的图像路径,这里是当前目录下的 "bird.jpg"
image_path = "./bird.jpg"
image = cv2.imread(image_path)
# 检查图像是否成功读取
if image is None:
print("错误:无法加载图像,请检查路径是否正确。")
exit()
# 2. 显示图像
# 创建一个名为 "Display Image" 的窗口,并在其中显示图像
cv2.imshow("Display Image", image)
# 3. 等待用户按键
# 参数 0 表示无限等待,直到用户按下任意键
key = cv2.waitKey(0)
# 4. 根据用户按键执行操作
if key == ord('s'): # 如果按下 's' 键
# 保存图像
output_path = "saved_image.jpg"
cv2.imwrite(output_path, image)
print(f"图像已保存为 {output_path}")
else: # 如果按下其他键
print("图像未保存。")
# 5. 关闭所有窗口
cv2.destroyAllWindows()
import cv2
# 1. 读取图像
# 替换为实际的图像路径,这里是当前目录下的 "bird.jpg"
image_path = "./bird.jpg"
image = cv2.imread(image_path)
# 检查图像是否成功读取
if image is None:
print("错误:无法加载图像,请检查路径是否正确。")
exit()
# 2. 显示图像
# 创建一个名为 "Display Image" 的窗口,并在其中显示图像
cv2.imshow("Display Image", image)
# 3. 等待用户按键
# 参数 0 表示无限等待,直到用户按下任意键
key = cv2.waitKey(0)
# 4. 根据用户按键执行操作
if key == ord('s'): # 如果按下 's' 键
# 保存图像
output_path = "saved_image.jpg"
cv2.imwrite(output_path, image)
print(f"图像已保存为 {output_path}")
else: # 如果按下其他键
print("图像未保存。")
# 5. 关闭所有窗口
cv2.destroyAllWindows()
python display_image.py
弹出窗口显示如下:
在显示的图像窗口中,按下 s 键保存图像,或按下其他键退出。
扩展练习
接下来我们可以尝试做一些代码的修改。
1、修改窗口名称:将 "Display Image" 改为其他名称,例如 "My Image"。
cv2.imshow("My Image", image)
2、保存为不同格式:将 "saved_image.jpg" 改为 "saved_image.png",观察保存结果。
# 4. 根据用户按键执行操作 if key == ord('s'): # 如果按下 's' 键 # 保存图像 output_path = "saved_image.png" cv2.imwrite(output_path, image) print(f"图像已保存为 {output_path}")
3、添加更多交互:例如,按下 'q' 键直接退出程序。
if key == ord('s'): # 如果按下 's' 键 # 保存图像 output_path = "saved_image.jpg" cv2.imwrite(output_path, image) print(f"图像已保存为 {output_path}") elif key == ord('q'): # 如果按下 'q' 键 print("程序已退出。") else: # 如果按下其他键 print("图像未保存,程序已退出。")
ord('q')
返回字符'q'
的 ASCII 码值。如果用户按下
'q'
键,打印提示信息"程序已退出。"
,然后程序会继续执行cv2.destroyAllWindows()
关闭窗口并退出。
点我分享笔记