安装 pip3 install opencv-python

图像处理:

import cv2    #导入opencv库
import numpy as np img = cv2.imread("ma.jpg") #读取一张图片,地址不能带中文
"""
第二个参数,取值可为:
cv2.IMREAD_COLOR=1:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE=0:读入灰度图片
cv2.IMREAD_UNCHANGED=-1:读入完整图片,包括alpha通道(png有,jpg无)
""" img1 = cv2.imread("ma.jpg",cv2.IMREAD_GRAYSCALE)
cv2.namedWindow("new window") #创建一个窗口,中文显示会出乱码
#参数 窗口标题 cv2.imshow("new window", img1) #显示图片
#参数1:窗口标题--不能是Pyqt的窗口;如果找不到参数1的窗口就新建一个
#imread读入的图像 cv2.imshow("new", img) print(img.shape) #输出:(452, 400, 3) 高像素(行数),宽像素(列数),通道数(一个像素有三个通道RGB)
# 灰度图由于没有颜色通道,使用shape属性返回的是(图像的高度,图像的宽度)。
print(img.size) # 542400 总通道数=高* 宽* 通道数
print(img.dtype)# uint8 3个通道每个通道占的位数(8位,一个字节)
#print(img) #输出每个像素点的参数( B , G , R )
#print(np.array(img)) #输出每个像素点的参数( B , G , R )
print(cv2.mean(img)) #获取图片 B G R 各个均值
#(210.87173119469026, 222.68342920353982, 228.77969579646017, 0.0)
#而pixel mean的话,其实是图片的所有R通道像素,求了均值,G,B通道类似,所以求出来就是三个数值(R_mean,G_mean,B_mean) print(cv2.meanStdDev(img)) #获取均值和方差,可用均值方差都为零判断图片无效
#(array([[210.87173119],[222.6834292 ],[228.7796958 ]]), array([[67.49584092],[54.39694368],[46.32777341]]))
#array([[210.87173119],[222.6834292 ],[228.7796958 ]]) 是B G R 各个均值
#array([[67.49584092],[54.39694368],[46.32777341]]) 是方差
#方差的概念:https://wenku.baidu.com/view/474731e31b37f111f18583d049649b6648d709d4.html img2=img.copy() #复制图片
cv2.imshow("fuzi", img2) cv2.waitKey(5000) #窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数 cv2.destroyAllWindows() #销毁窗口,退出程序
cv2.namedWindow("operation", cv2.WINDOW_AUTOSIZE)  #创建窗口--方式一
#cv2.namedWindow('image',cv2.WINDOW_AUTOSIZE) #创建窗口--方式二
#cv2.WINDOW_NORMAL 窗口大小可以改变
#cv2.WINDOW_AUTOSIZE 窗口大小不可以改变
#cv2.WINDOW_FREERATIO 窗口大小自适应比例
#cv2.WINDOW_KEEPRATIO 窗口大小保持比例
#cv2.WINDOW_GUI_EXPANDED 显示色彩变成暗色

cv2.imwrite("2.jpg",img)     # 存储图片

参数1 文件名

参数2 图片(图片矩阵数据)

参数3 可选参数,可以指定使用特定格式编码保存的参数,一般情况下我们很少用到

img = 255*np.ones((240,480,3),np.uint8)  #自定义一张彩色图像
#240 高;480 宽;3 通道数

img = *np.ones((,,),np.uint8)  #自定义一张彩色图像
#240 高;480 宽;3 通道数

python--openCV--图像处理的更多相关文章

  1. Python+OpenCV图像处理(一)

    Python+OpenCV图像处理(一): 读取,写入和展示图片 调用摄像头拍照 调用摄像头录制视频 1. 读取.写入和展示图片 图像读入:cv2.imread() 使用函数cv2.imread() ...

  2. Python+OpenCV图像处理(一)——读取显示一张图片

    先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ...

  3. Python+OpenCV图像处理(十四)—— 直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  4. Python+OpenCV图像处理(九)—— 模板匹配

    百度百科:模板匹配是一种最原始.最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题.它是图像处理中最基本.最常用的匹配方法.模板匹配具有自身的局限性, ...

  5. Python+OpenCV图像处理(八)—— 图像直方图

    直方图简介:图像的直方图是用来表现图像中亮度分布的直方图,给出的是图像中某个亮度或者某个范围亮度下共有几个像素.还不明白?就是统计一幅图某个亮度像素数量.比如对于灰度值12,一幅图里面有2000 个像 ...

  6. 如何让一张图片变成二值图像?python+opencv图像处理

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张熹熹 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  7. Python+OpenCV图像处理(十六)—— 轮廓发现

    简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果. 代码如下: import cv2 as cv import numpy as np def c ...

  8. Python+OpenCV图像处理(十五)—— 圆检测

    简介: 1.霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径.极角空间被三维的圆心和半径空间取代.在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心 ...

  9. Python+OpenCV图像处理(十三)—— Canny边缘检测

    简介: 1.Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法. 2.Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是: 好的检测- ...

  10. Python+OpenCV图像处理(十二)—— 图像梯度

    简介:图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导. Sobel算子是普通一阶差分,是基于寻找梯度强度.拉普拉斯算子(二阶差分)是基于过零点检测.通过计算梯度,设置阀值, ...

随机推荐

  1. 剑指offer45:扑克牌顺子

    1 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话, ...

  2. POJ 1015 Jury Compromise (记录路径的背包问题)

    (点击此处查看原题) 题意 为了审判某一个人,需要在n个人当中选出m个人组成陪审团,n个人中每个人都有作为起诉方的价值p和作为辩护方的价值d,为了保证公平性,要求m个人作为起诉方的价值之和P和作为辩护 ...

  3. 整体二分(模板一)静态区间第K大

    #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include <cstdio>//sprintf islower isupp ...

  4. easyUI datagrid 刷新取消加载信息 自动刷新闪屏问题

    <style type="text/css"> /*-- 消除grid屏闪问题 --//*/ .datagrid-mask { opacity: 0; filter: ...

  5. 第十一章 ZYNQ-MIZ702 DDR3 PS读写操作方案

      本编文章的目的主要用简明的方法在纯PS里对DDR3进行读写. 本文所使用的开发板是Miz702 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4 11.0本章难度 ...

  6. Cactus CodeForces - 231E (无向图缩环)

    大意: 给定无向图, 每个点最多属于一个简单环, 多组询问, 求给定起点终点, 有多少条简单路径. 先缩环, 然后假设两点树上路径经过$cnt$个环, 那么答案就为$2^{cnt}$. 要注意缩环建树 ...

  7. Windows编程 鼠标

    客户区鼠标消息 由上一回我们得知Windows只把键盘消息发送给拥有输入焦点的窗口,而鼠标消息与此不同:只要鼠标跨越窗口或者在某窗口下按下鼠标键,那么窗口过程就会收到鼠标消息,不管该窗口是否活动或者是 ...

  8. python 画正态曲线

    import numpy as np import matplotlib.pyplot as plt import math # Python实现正态分布 # 绘制正态分布概率密度函数 u = 0 # ...

  9. C# 7.0 语法

    C# 7.0的语法主要是优化了之前的写法,使得更加简洁方便.try catch when  这个使用场景很少,正常的开发无业务处理的时候不建议使用 . #region 2.字符串嵌入值 Console ...

  10. C# 批量设置窗体中控件状态的方法

    在开发中常遇到当点击某个按钮的时候,禁用文本框或按钮的的状态,以防止误操作,下面的代码是我已批量设置指定控件中的按钮状态的代码,同理可以延伸出很多操作. /// <summary> /// ...