【涵子来信&python大全】——第二季——opencv第一篇

各位亲爱的读者,博主:

首先恭喜大家,涵子来信已经到达第二季——2023年篇。今天,我们要步入机器学习的初级内容:python opencv图片!


目录

一、提前准备

二、程序代码学习

2.1.如何读取图片

2.2.显示图片

三、资料与问题参考

3.1.错误参考

3.1.1.我发现代码报错,代码检查过,没有问题,这是怎么回事?

3.1.2我图片明明有,但是显示不出来,怎么回事

3.2.资料参考


一、提前准备

首先opencv这个库并不是自带的,所以我们要pip一下。内容如下

pip install opencv-python

注意不要写成opencv哦!它还会自己安装另一个依赖库,numpy,如果运行后面的程序时报错说没有numpy这个库,试着用这段代码pip:

pip install numpy

如果版本太低,请升级python和pip,建议使用python3.9,python3.10或者3.11可能不兼容。

二、程序代码学习

2.1.如何读取图片

首先,我们得要知道为什么要装numpy,不是只需要opencv吗?这个嘛,下一章再讲...

 想要处理图片,就得先要读取图片,这是人人皆知的事情。程序的第一步,是导入库:

import cv2

⚠注意:import时就不是opencv-python或者opencv了,要用cv2了!

 英语课代表们,image认识吧!image缩写就是img,再缩一点就是im,加个read,哎,这就是opencv读取图片的函数名称了!

cv2.imread(pic_path)

加入了路径后是这样的:

cv2.imread("C:\Users\用户名\Desktop\pic.png")

在用的时候就要自己注意,改成正确的路径。

恭喜你成功读取了你的图片。

Tips:可以让这个图片作为一个变量重复使用!

pic = cv2.imread("C:\Users\用户名\Desktop\pic.png")

2.2.显示图片

光读取不行,还得显示哪。所以我们要用一个函数,imshow!

cv2.imshow(window_name, pic)
cv2.imshow('demo', pic)

效果如下:

 为了防止自动退出(pycharm可能会发生),所以可以在代码后面加入:
 

cv2.waitKey(0)

整个代码如下:

import cv2
img = cv2.imread(r'C:\Users\用户名\Desktop\pic.jpg')
cv2.imshow('demo', img)
cv2.waitKey(0)

恭喜你走出了第一步!

三、资料与问题参考

3.1.错误参考

3.1.1.我发现代码报错,代码检查过,没有问题,这是怎么回事?

这个错误可能是这个:(只需要看cv2.error的这一行)

Traceback (most recent call last):
  File "C:\Users\用户名\Desktop\test.py", line 3, in <module>
    cv2.imshow('demo', img)
cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:971: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

这就很奇怪了是不?这是因为你的路径中有中文,这就是opencv的致命弱点,路径不能有中文!

3.1.2我图片明明有,但是显示不出来,怎么回事

这就比较少见,可能是因为你的图片格式比较冷门,或者是错误的,所以无法显示。

3.2.资料参考

关于numpy的内容,可以抢先去菜鸟编程里抢先阅读!

NumPy 教程 | 菜鸟教程 (runoob.com)https://www.runoob.com/numpy/numpy-tutorial.html如果你有更多奇怪的问题,请留言在评论区。最后希望大家多多关注,点赞,收藏,我们下一期再见!

涵子

2023/1/11

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值