为什么使用Python-OpenCV
虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多。跟很多开源软件一样OpenCV 也提供了完善的python 接口,非常便于调用。OpenCV 的稳定版是2.4.8,最新版是3.0,包含了超过2500 个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV 的函数来实现,超级方便。
本机使用python 2.7.10下调试代码均通过,一下学习需要有一定的代码阅读能力,一下学习只介绍函数方法:
Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。而且它简单易学,初学者几个小时就可以基本入门。再加上Numpy 和matplotlib 这两个翅膀,Python 对数据分析的能力不逊于Matlab。Python 还被称为是胶水语言,有很多软件都提供了Python 接口。尤其是在linux 下,可以使用Python 将不同的软件组成一个工作流,发挥每一个软件自己最大的优势从而完成一个复杂的任务。比如我们可以使用Mysql 存储数据,使用R 分析数据,使用matplotlib 展示数据,使用OpenGL 进行3D 建模,使用Qt 构建漂亮的GUI。而Python 可以将他们联合在一起构建一个强大的工作流。
1、图像读入:cv2.imread()
使用函数cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径,第二个参数是要告诉函数应该如何读取这幅图片。
• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,
这是默认参数。
• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
import cv2
img = cv2.imread('lena.jpg',0)
PS:调用opencv,就算图像的路径是错的,OpenCV 也不会提醒你的,但是当你使用命
令print img时得到的结果是None。
2、显示图像cv2.imshow()
使用函数cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。
cv2.imshow('image',img)
cv2.waitKey(0)
3、保存图像cv2.imwrite()
cv2.imwrite('lena.png',img)
==========================
imgflip = cv2.flip(img,1)
imgcopy = img.copy()
#彩色图像转为灰度图像
img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
灰度图像转为彩色图像img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
import numpy as np
import cv2
img = cv2.imread('1.jpg',cv2.IMREAD_UNCHANGED)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == ord('s'):
# wait for 's' key to save and exit
cv2.imwrite('1.png',img)
cv2.destroyAllWindows()else:
cv2.destroyAllWindows()
参考:https://blog.csdn.net/Eddy_zheng/article/details/48286735
https://blog.csdn.net/djcxym/article/details/52097812