python3 opencv 2.3.1_python3+Opencv+Numpy

一、必备前提:

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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值