一、必备前提:
Python3.5及以上版本、pip、windows环境
二、搭建opencv
该部分可以创建隔绝的Python环境来引入,参照virtualenv的使用
在目标的cmd窗口,依次输入以下命令:
pip install --upgrade setuptools
pip install numpy Matplotlib
pip install opencv-python
如果下载中间出现error或wrong,重新输入命令即可。
pip install 包的位置(如:C:\download\xxx.whl)
三、测试脚本
1 #导入cv模块
2 importcv2 as cv3 #读取图像,支持 bmp、jpg、png、tiff 等常用格式
4 img = cv.imread("D:\python\test.jpg")5 #创建窗口并显示图像
6 cv.namedWindow("Image")7 cv.imshow("Image",img)8 cv.waitKey(0)9 #释放窗口
10 cv2.destroyAllWindows()
以上内容部分摘自:https://www.cnblogs.com/lclblack/p/6377710.html
四、使用
创建图片
1.创建三通道
#三通道
creat_img3 = np.zeros([400, 400, 3], np.uint8) #高400*宽400*通道3 单通道8位
creat_img3[:, :, 0] = np.ones([400, 400]) * 255 #0(Blue)通道全部赋值255
creat_img3[:, :, 2] = np.ones([400, 400]) * 255 #2(Red)通道全部赋值255
cv.imshow("create image3", creat_img3)
2.创建单通道
#单通道
creat_img1 = np.zeros([400, 400, 1], np.uint8)
creat_img1[:, :, 0]= np.ones([400, 400]) * 127 #单通道灰度图像
cv.imshow("create image1", creat_img1)
3.创建小尺寸
#生成小尺寸图片
mini_img = np.ones([3, 3], np.float)
mini_img.fill(127.1) #.fill方法填充数据
mini_img2 = mini_img.reshape([1, 9]) #reshape只改变形状,不改变数据
print(mini_img, mini_img2)
以上内容摘自:https://blog.csdn.net/l0ve777/article/details/88715704
代码:
1 mini_img = np.ones([3, 3], np.uint8)2 mini_img.fill(127) #.fill方法填充数据
3 #mini_img2 = mini_img.reshape([1, 9]) # reshape只改变形状,不改变数据
4 #print(mini_img, mini_img2)
5 print(mini_img)6 cv.imshow("mini_img", mini_img)7 cv.waitKey(0) #毫秒级,0为无限等待
8 cv.imwrite('mini.jpg', mini_img)9
10 image = cv.imread('mini.jpg',0) #0表示灰度图
11 print(image)12
13 image[0][0] = 100
14 image[1][0] = 40
15 cv.imshow("mini_img", image)16 cv.waitKey(0)17 cv.imwrite('mini2.jpg', image)18
19 image = cv.imread('mini2.jpg',0)20 print(image)
以上三处打印分别为:
[[127 127 127]
[127 127 127]
[127 127 127]]
[[127 127 127]
[127 127 127]
[127 127 127]]
[[100 126 125]
[39 131 127]
[128 127 124]]
发现,为灰度图(即像素数相同,为127)时,读图数据与写入一致,但是当改变了其中某些像素值后,读图数据发生了变化,
是由于jpeg压缩版本在压缩过程中导致了部分像素丢失,保存图片为tif格式或者png格式,即可以解决此问题
cv.imwrite('mini2.png', image)
image= cv.imread('mini2.png',0)