所需库
pip install numpy
pip install scipy
pip install matplotlib
pip install mahotas
pip install scikit-learn
pip install -U scikit-image
从0开始的机器视觉
从0开始学习OpenCV(当然得有一定的Python基础),直接来看代码吧,新建一个load_display_save.py
from __future__ import print_function
import argparse
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
help="Path to the image")
args = vars(ap.parse_args())
首先是导入所必须要的第三方库。
from __future__ import print_function
实际上在这里使用的是print()函数,而不是print语句实际上是为了兼容python3 和 python2的使用。
argparse
是为了帮助处理解析命令行参数,而cv2 很明显是为了之后的图像处理做引用。
随后5-8行代码是用来处理解析命令,--image
用来获取硬盘上的图像路径,随后将量化的图像数据存储在字典中(python本身并没有数组功能(python3.7),使用numpy可以解决)。
image = cv2.imread(args["image"])
print("width:{}pixels".format(image.shape[1]))
print("height:{}pixels".format(image.shape[0]))
print("channels:{}".format(image.shape[2]))
cv2.imshow("Image", image)
cv2.waitKey(0)
现在,所选择的图片已经加载到计算机内存中了,调用cv2.imread()
函数,它可以返回一个代表图像的 Numpy 数组。
随后三行代码,通过print()
函数来输出(可视化)图像的信息,因为已经是数组形式的数据了所以这里可以通过调用.shape
属性来输出。
最后两行,第一个用来在桌面显示我们调用的图像,imshow()
方法中的"Image"
代表输出框的名称,image
代表我们从硬盘中提取到内存中的图像映射名称,waitKey()
方法用来控制输出的选项框不会立刻消失(如果没有这行代码,可能结果只会出现在一瞬间后就立马消失),"0"代表按下键盘上的任意按键来结束(关闭)这个输出框。
最后一件事就是将“处理(事实这个程序15行啥也没干…不过作为学习使用方法了)”写入到硬盘中:
cv2.imwrite("newimage.jpg", image)
如果想调试这个项目的话需要在terminal中“手动”调试:(pycharm下方自带terminal选项卡可以很方便的使用,vs code也同理,如果需要在cmd之类的终端运行代码的话 需要cd 到代码所在目录。)
比如:
python load_display_save.py --image ./images/trex.png
更多编程相关的知识可以访问我的个人博客
https://idzforjh.top
联系方式qq:1486702069
欢迎与我一起讨论、学习。