赞
踩
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
前面我们谈到了qt,谈到了opencv,也谈到了嵌入式,但是没有说明python在这个过程当中应该扮演什么样的角色。opencv从开发的角度来说,可以是配合python做算法验证,十分简洁、方便,毕竟python不需要自己来编译。从上位机的角度说,opencv还可以做成上位机工具,给fae使用。当然,它做到嵌入式模块里面也是可以的,这样的话,opencv就会被编译成arm代码,结合上位机工具一起去部署就可以了。所以,哪怕就是相同的opencv库,用法不同,场景不同,发挥的作用也是不一样的。
python本身是一门脚本语言,建议大家可以安装一个较新的版本,比如说python3。
网上很多的教程,都是推荐大家直接用pip install去安装,其实这样安装的效率是很低的。建议大家在安装好python3之后,cd到Scripts目录下,利用pip和douban的软件源来安装opencv,这样效率要高很多。比如说,像这样,
pip3.exe install opencv-python -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
要想确认cv2已经安装好,只需要在python3目录下打开python,输入下面这个语句,如果没有报错的话,那就一切正常了,
import cv2
安装好了opencv之后,就可以写图像处理程序了。最简单的一个脚本,肯定就是显示一幅lena.png的图片了。我们可以打开一个编辑器,接下来就是输入下面这些脚本即可,
- import cv2
-
- '''
- main entry
- '''
- def main():
- picture = cv2.imread('./lena.bmp')
- cv2.imshow('lena', picture)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
-
- if __name__ == '__main__':
- main()
假设编写的脚本没有问题,我们就可以用python工具直接运行它就ok了。脚本的文件名如果是demo.py,那么可以这么来进行执行脚本,
C:\Python39\python.exe demo.py
确认一下图片是否可以正常显示,能正常显示,那就代表问题不大了。
前面我们虽然显示了lena.png,但是没有自己用python写一个算法,算是一个小小的遗憾。这里,我们其实也可以通过python脚本,自己来实现一个灰化算法,这也是不错的一个选择。很多时候,对于一些成熟的算法,并不是我们自己不会写,而是说使用opencv更加方便一点,仅此而已。因为这样在出现问题的时候,才会知道怎么去调整和debug脚本,
- import cv2
- import numpy as np
-
- '''
- use average value
- '''
- def generate_gray_data(picture):
- for i in range(picture.shape[0]):
- for j in range(picture.shape[1]):
- val = np.sum(picture[i,j])
- val = val/3
- picture[i,j] = [val, val, val]
- return picture
-
-
- '''
- main entry
- '''
- def main():
- picture = cv2.imread('./lena.bmp')
- print(picture.shape[0])
- print(picture.shape[1])
- print(picture.shape[2])
- picture = generate_gray_data(picture)
- cv2.imshow('lena', picture)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
-
- if __name__ == '__main__':
- main()
opencv作为一个库来说,本身无所谓好坏。我们使用它,也是为了实现特定的功能。它可以和c++配合,也可以和python进行搭档,一般来说我们处理的流程是这样的,如下图所示,大家可以熟记于心一下。python也好,c++也好,opencv也好,自己写算法也好,嵌入式开发也好,每一个步骤都有自己的用途。不存在谁取代谁的问题。这个过程当然可以简化,也可以添加新的流程,最终目的都是为了满足客户的需求,同时实现个人的价值和利益。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。