1.图片加载、显示和保存

import cv2
# 读取图片
img = cv2.imread("img1.jpg")
# 生成灰色图片
imgGrey = cv2.imread("img1.jpg",0)
# 展示原图
cv2.imshow("img",img)
# 展示灰色图片
cv2.imshow("imgGrey",img)
# 等待图片的关闭
cv2.waitKey()
# 保存图片
cv2.imwrite("Copy.jpg",imgGrey)

2.图像显示窗口创建于销毁

cv2.namedWindow(创空名,属性)创建一个窗口

属性一般指定窗口大小模式:

cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小

cv2.WINDOW_NORMAL:窗口大小可调整

cv2.destoryAllWindows(窗口名)删除任何建立的窗口

import cv2

img = cv2.imread("img",cv2.WINDOW_NORMAL)

cv2.imshow("img",img)
cv2.waitKey()
cv2.destoryAllWindows()

3.图片宽、高、通道数获取

img.shape 返回图像高(图像矩形的行数)、(图像矩形的列数)和通道数3个属性组成的元祖(png为4通道),若图像是非彩色图,则只返回高和宽组成的元祖。

import cv2

img = cv2.imread("1.jpg")
imgGrey = cv2.imread("1.jpg",0) sp1 = img.shape
sp2 = imgGrey.shape print(sp1)
print(sp2)
# =====输出======
# (800,800,3)
# (800,800)

4.图像像素数目和图像数据类型的获取

图像矩形img的size属性和dtype分别对象图像的像素总数目和图像数据类型。一般情况下,图像的数据类型是unit8。

import cv2

img = cv2.imread("1.jpg")

imgSize = img.size
print(imgSize) ty = img.dtype
print(ty)
# ====输出=====
# 691200
# uint8

5生成指定大小的空图像

生成指定大小的空图像

import cv2
import numpy as np img = cv2.imread("1.jpg")
imgZero = np.zeros(img.shape,np.uint8) imgFix = np.zeros((300,500,3),np.uint8) cv2.imshow("img",img)
cv2.imshow("imgZero",imgZero)
cv2.imshow("imgFix",imgFix)
cv2.waitKey()

6.生成透明图圆形色块

cv2.circle(图片,圆心位置,圆半径,颜色,-1)

import cv2
import numpy as np imgZero = np.zeros((400),np.uint8)
cv2.namedWindow('draw circles')
cv2.circle(img,(200,200),200,(0,0,255,255),-1)
cv2.imshow("imgGrey",img)
cv2.waitKey()
cv2.imwrite("Copy.png",img)

7.访问和操作图像像素

OpenCV中图像矩阵的顺序是B、G、R。可以直接通过坐标位置访问和操作图像像素。

import cv2
img = cv2.imread("01.jpg") numb = img[50,100]
print(numb) img[50,100] = (0,0,255)
cv2.imshow("img",img)
cv2.waitKey()

分开访问图像某一通道像素

import cv2

img = cv2.imread("01.jpg")

img[0:100,100:200,0] = 255
img[100:200,200:300,1] = 255
img[200:300,300,400,2] = 255 cv2.imshow("img",img)
cv2.waitKey

更改图像某一矩形区域的图像值也很方便

import cv2

img = cv2.imread("01.jpg")

img[0:50,1:100] = (0,0,255)

cv2.imshow("img",img)
cv2.waitKey()

8.图像三通道分离和合并

分离图像通道可以使用cv2中的split函数,合并使用merge函数

import cv2

img = cv2.imread("01.jpg")

b , g , r = cv2.split(img)

merged = cv2.merge([b,g,r])

cv2.imshow("Blue",b)
cv2.imshow("Green",g)
cv2.imshow()"Red",r) cv2.imshow("Merged",merged)
cv2.waitKey()

8.在图像上输出文字

使用putText函数在图片上输出文字,函数原型:

putText(img,text,org,fontFace,fontScale,color,thickness=None,lineType=None,bottomLeftOrigin=None)

  • img:图像
  • text:要输出的文本
  • org:文字的起点坐标
  • fontFace:字体
  • fontScale:字体大小
  • color:字体颜色
  • thickness:字图加粗
img = cv2.imread("01.jpg")

cv2.putTtext(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255))

cv2.imshow("img",img)
cv2.waitKey()

9.图像缩放

import cv2

img = cv2.imread("1.jpg")
cv2.imshow("img",img) imgg = cv2.resize(img,(200,100)) cv2.imshow("imgg",imgg)
cv2.waitKey()

10.图片灰度化处理

from matplotlib import pyplot as plt
import cv2
form pylab import * #添加中文字体支持
from matplotlib.font_manager import FontProperties
fot = FontProperties(fname = r"c:\windows\fonts\SimSun,ttc",size = 14) # 载入图像
im = cv2.imread("1.jpg")
# 显示原始图像
fig = plt.figure()
subplot(121)
plt.gray()
im2 = cv2.cvtColor(im,cv2.COLOR_BGR2RGB) # OpenCV采用BGR排序,需要转换一下
imshow(im2)
title(u'彩色图',fontproperties= font)
axis('off')
# 显示灰度化图像
# 颜色空间转换 gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
plt.subplot(122)
plt.gray()
imshow(gray)
title(u"灰度图",fontproperties=font)
axis('off')
show()

Python openCV基础操作的更多相关文章

  1. Python文件基础操作(IO入门1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...

  2. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  3. python列表基础操作

    Python列表基本操作 记住一句话,叫做顾首不顾尾 首先我们来定义一个列表 name = ["jixuege","dajiba","boduoye& ...

  4. Python字符串基础操作

    ==============字符串======== >>> s1='www.baidu.com' >>> type(s1) <type 'str'> & ...

  5. 图像混合学习。运用加权函数,学习opencv基础操作

               {          cout<<     }           {          cout<<     }       ,,logoImage.c ...

  6. python 图像处理基础操作

    Python 读取图片文件为矩阵和保存矩阵为图片 读取图片为矩阵 import matplotlib im = matplotlib.image.imread('0_0.jpg') 保存矩阵为图片 i ...

  7. python Django基础操作

    Django常用命令 创建Django项目 Django-admin startprotect  mysite 创建项目以后,以下生成的文件 最外层的file:mysite/ 根目录只是你的项目的容器 ...

  8. python git 基础操作

    模块安装 pip install gitpython 基本用法 1. 初始化 from git import Repo Repo.init('/data/test2') # 创建一个git文件夹 # ...

  9. python的基础操作2

    一 字符串格式化 占位符 %s和%d %s是属于字符串的占位符,而%d是属于数字类型的占位符 #占位符 %s %d # a="我叫%s,年龄%d,就是一个%s"%("al ...

随机推荐

  1. ad_hoc详解

    import shutil from collections import namedtuple from ansible.parsing.dataloader import DataLoader f ...

  2. python执行playbook

    from collections import namedtuple from ansible.parsing.dataloader import DataLoader from ansible.va ...

  3. BZOJ 4807 車 组合数学

    思路:高精度\((what)\) 提交:2次(后来发现有种更快的写法) 题解: 设\(n>m\),那么显然答案为\(C(n,m)\),相当于只能放\(m\)个棋子,可以在\(n\)列中选任意不同 ...

  4. jQuery.each(object, [callback])

    jQuery.each(object, [callback]) 概述 通用遍历方法,可用于遍历对象和数组.大理石平台检定规程 不同于遍历 jQuery 对象的 $().each() 方法,此方法可用于 ...

  5. IDEA工具的安装、破解与配置

    一.什么是IDEA? IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境,是目前最好用的java集成开发工具.他最突出的功能是调试(Debug),可以对Java代码,Java ...

  6. JavaWeb_(SpringMVC框架)测试SpringMVC&Spring&MyBatis三大整合

    搭建 SpringMVC&Spring&MyBatis三大整合 传送门 1.准备 测试搭建S pringMVC&Spring&MyBatis三大整合 用例   a)准备 ...

  7. legend3---14、所有增删改的前置操作可以是什么

    legend3---14.所有增删改的前置操作可以是什么 一.总结 一句话总结: 先查询数据有没有,这样既起到了服务端验证的功能,也避免了很多增删改可能的错误 1.用户收藏视频,收藏课程有必要建立用户 ...

  8. mysqldump定时任务生成备份文件内容为空解决方法

    1问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空 2原因分析:由于mysqldump存在于全局环境变量mysql的bin下面, ...

  9. 【SpringBoot】整体下载大文件与分批下载大文件(利用MySql数据库的Limit实现)

    在前文里谈过一次性从数据库取一个大结果集有可能导致outofMemory,当时的想法是分批去取回来,今天把它实现了,特地把代码分享出来: 工程下载:https://files.cnblogs.com/ ...

  10. Eclipse的断点调试

    A:Debug的作用 调试程序 查看程序执行流程 B:如何查看程序执行流程 什么是断点: 就是一个标记,从哪里开始. 如何设置断点: 你想看哪里的程序,你就在那个有效程序的左边双击即可. 在哪里设置断 ...