Python OpenCV处理图像之图像像素点操作


Posted in Python onJuly 10, 2018

本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下

0x01. 像素

有两种直接操作图片像素点的方法:

第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB值。

第二种就是使用 OpenCV 提供的 Get1D、 Get2D 等函数。

推荐使用第一种办法吧,毕竟简单。

0x02. 获取行和列像素

有一下四个函数:

  • cv.GetCol(im, 0): 返回第一列的像素
  • cv GetCols(im, 0, 10): 返回前 10 列
  • cv.GetRow(im, 0): 返回第一行
  • cv.GetRows(im, 0, 10): 返回前 10 行

0x03. 批量处理

需要批量处理所有的像素点的时候,只需要使用for循环迭代处理就可以了:

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
 
for i in range(im.height):
 for j in range(im.width):
  im[i,j] # 这里可以处理每个像素点

还有一种迭代处理的方式是使用 LineIterator,不过在声明 LineIterator 的时候需要制定处理像素点的开始点和结束点。

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
li = cv.InitLineIterator(im, (0, 0), (im.rows, im.cols)) #So loop the entire matrix
 
for (r, g, b) in li:
 # 这里可以对每个像素点的 r g b 进行处理

娱乐一下, 随机获取 5000 个像素点,然后把颜色换成一个随机的值(salt):

import cv2.cv as cv
 
import random
 
# 这里也可以使用 Get2D/Set2D 来加载图片
im = cv.LoadImage("img/lena.jpg") 
 
for k in range(5000): #Create 5000 noisy pixels
 i = random.randint(0,im.height-1)
 j = random.randint(0,im.width-1)
 color = (random.randrange(256),random.randrange(256),random.randrange(256))
 im[i,j] = color
 
cv.ShowImage("Noize", im)
cv.WaitKey(0)

效果图:

Python OpenCV处理图像之图像像素点操作

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
基于python实现KNN分类算法
Apr 23 Python
对python判断ip是否可达的实例详解
Jan 31 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Pytorch转onnx、torchscript方式
May 25 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 #Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 #Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 #Python
python操作excel文件并输出txt文件的实例
Jul 10 #Python
深入浅析Python传值与传址
Jul 10 #Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 #Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 #Python
You might like
php中Socket创建与监听实现方法
2015/01/05 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
js 动态选中下拉框
2009/11/26 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
Python 序列的方法总结
2016/10/18 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
企业项目策划书
2014/01/11 职场文书
五年级数学教学反思
2014/02/11 职场文书
《藏戏》教学反思
2014/02/11 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android