1、使用opencv读写图像

OpenCV支持jpg、png、tif等格式图像读取。

import cv2import matplotlib.pyplot as pltpath = ‘lena.jpg’img = cv2.imread(path)cv2.imwrite(‘lena1.jpg’, img)

2、BGR转RGB

opencv是按照bgr方式读取图像,而plt按照rgb格式显示图像,因此会出现显示异常。为了正常显示,需要进行顺序转换,由BGR转为RGB。

使用opencv:

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

使用矩阵操作:

img = img[:, :, ::-1]

import cv2
import matplotlib.pyplot as plt
import numpy
path = 'lena.jpg'
img = cv2.imread(path)
img = cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()

3、获取图像宽高

height, width = img.shape[:2]

或者

img_shape = img.shape

height = img_shape[0]

width = img_shape[1]

4、调整图像尺寸

cv2.resize(img, (height, width), cv2.INTER_LINEAR)

第一个参数为原始图像,第二个为调整后尺寸,第三个为插值算法设置,INTER_NEAREST、INTER_LINEAR、INTER_CUBIC分别为最邻近插值、双线性插值、双三次插值。

import cv2
import matplotlib.pyplot as plt
import numpy
path = 'lena.jpg'
img = cv2.imread(path)
img = cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (300, 200), cv2.INTER_LINEAR)
plt.imshow(img)
plt.show()

5、将图像转换为python字节

import cv2path = 'lena.jpg'img = cv2.imread(path)byteArray = bytearray(img)print(byteArray)

6、将图像一部分区域拷贝到另一部分。

import cv2import matplotlib.pyplot as pltpath = 'lena.jpg'img = cv2.imread(path)img = img[:, :, ::-1]image_block = img[0:100, 0:100]img[200:300,200:300] = image_blockplt.imshow(img)plt.show()

7、使用canny提取边缘

import cv2import matplotlib.pyplot as pltpath = 'lena.jpg'img = cv2.imread(path)img = cv2.Canny(img, 100, 150)plt.imshow(img)plt.show()

8、在图像上绘制矩形框

cv2.rectangle(img, (350, 120), (470, 520), (0, 255, 0), 2)

第一个参数为原图,第二和第三个参数为图像左上角和右下角坐标,第四个参数为线框颜色,第五个参数为线宽。

import cv2import matplotlib.pyplot as pltimport numpypath = 'person.jpg'img = cv2.imread(path)img = cv2.rectangle(img, (350, 120), (470, 520), (0, 255, 0), 2)plt.imshow(img)plt.show()

9、镜像变换

水平镜像:img = cv2.flip(img,1,dst=None)

垂直镜像:img = cv2.flip(img,0,dst=None)

对角镜像:img = cv2.flip(img,-1,dst=None)

10、图像滤波

均值滤波:dst = cv2.blur(img, [5, 5])

中值滤波:dst = cv2.medianBlur(img, 7)

双边滤波:dst = cv2.bilateralFilter(img, 10, 30, 30)

11、图像添加文字

cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2,)

参数说明:原始图像,文字,坐标(左上角),字体,字体大小、颜色、字体线条粗细

OpenCV图像处理基础操作汇总相关推荐

  1. OPENCV图像处理基础

    OPENCV图像处理基础 1.图像处理基础 1.1 数字图像 1.1.1 数字图像概念: 1.1.2 数字图像起源: 1.1.3 常见成像方式: 1.1.4 数字图像的应用: 1.1.5 Opencv ...

  2. OpenCV图像处理基础(变换和去噪)

    OpenCV图像处理基础(变换和去噪) 基础知识 使用OpenCV读取图片 图像变换 仿射变换 图像缩放 图像旋转 图像平移 图像裁剪 图像翻转 亮度与对比度变换 图像去噪 高斯噪声 椒盐噪声 中值和 ...

  3. OpenCV入门基础操作(二)----图像像素的处理

    OpenCV入门基础操作(二)----图像像素的处理 像素处理 读取一个图像像素 修改像素值 代码案例 像素处理 读取一个图像像素 在读取图像的时候一般要用到如下的命令: 返回值=图像(位置参数), ...

  4. Python opencv图像处理基础总结(一) 环境搭建 基础操作

    学过的知识,会过时.会遗忘,但在努力过程中学会的处事态度和做事习惯,都会留在骨子里,变成我们的一部分. Open Source Computer Vision Library,OpenCV于 1999 ...

  5. OpenCV+python图像处理基础操作

    1.读写图像(建议使用绝对路径) import cv2 from cv2 im = cv2.imread('C:/Users/admin/Desktop/test/1.jpg') cv2.imwrit ...

  6. OpenCV图像处理基础(C++版)

    目录 OpenCV环境搭建 加载 修改 保存图像 矩阵的掩膜操作 Mat对象 图像操作 图像混合 调整图像亮度与对比度 绘制形状与文字 模糊图像一 模糊图像二 膨胀与腐蚀 形态学操作 形态学操作应用- ...

  7. JDBC基础操作汇总

    基础的工具类 JDBC进行CRUD操作会有很多重复的代码,我们把重复的代码汇总到一个类里就可以让程序变得简洁很多 package JDBCLearning;import javax.xml.trans ...

  8. OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 通俗的说 ...

  9. OPENCV图像处理基础(五)鼠标事件画个框

    在GUI编程中会涉及到鼠标事件,通过鼠标事件可以使得人和机器的交互更为便捷.opencv中提供了一种以回调函数实现的鼠标事件机制. 下面是一个例子,通过鼠标在一张图片上画出任意大小的矩形框. 效果如下 ...

最新文章

  1. Fisher_Yates算法
  2. java undo_用JAVA实现Undo、Redo,Copy、Paste、Cut_java
  3. tia v15 添加项目_硬技能,TIA 博途软件界面的介绍
  4. 今年第一个项目来说NET的中间语言
  5. Linux IPC实践(12) --System V信号量(2)
  6. 易宝典——玩转O365中的EXO服务 之四十二 导出就地电子数据展示搜索结果
  7. mysql 自动复制_MySQL复制 自动监控脚本-阿里云开发者社区
  8. 离散数学学习笔记----命题逻辑的推理理论
  9. 数字通信之数字信号基带传输(九)
  10. Linux系统下Lame环境的搭建
  11. mysql中explain执行结果中的rows是什么意思?
  12. java的h2是什么_什么是H2数据库
  13. 郑州大学计算机系好请假吗,郑州大学生最让人心碎的请假条:请假期限永远,无法按时返校!...
  14. Matlab 图像像素级标注
  15. 关于Win10和win7下输出txt文件的换行问题
  16. AI编译器XLA调研
  17. IMX6ULL 基于NXP官方Linux源码添加自己单板
  18. can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
  19. 速轩三维 - 白光/蓝光/拍照式三维扫描仪
  20. 前美图技术总裁洪小军入职AfterShip 担当CTO助力全球电商服务平台

热门文章

  1. 什么是servlet?servlet的作用?——计算机网络系列学习笔记
  2. 【已解决】Error attaching to process: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versi
  3. 【解析】UVA-548 Tree
  4. 1097 Deduplication on a Linked List (25 分)_35行代码AC
  5. 18行代码解决:(C语言)L1-046 整除光棍 (20分)
  6. [leetcode]剑指offer32-1.从上到下打印二叉树
  7. OpenStack 的部署T版(三)——Glance组件
  8. 传统公司部署OpenStack(t版)简易介绍(五)——nova模块部署
  9. 基因表达式编程gep_基因表达式编程GEP— 前言
  10. JFreeChart设置背景图片 .