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将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
手把手教你python实现SVM算法
Dec 27 Python
解决python大批量读写.doc文件的问题
May 08 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
python定位xpath 节点位置的方法
Aug 27 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
python可以用哪些数据库
Jun 22 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
Python用Jira库来操作Jira
Dec 28 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
python中pycryto实现数据加密
Apr 29 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
酒吧总经理岗位职责
2013/12/10 职场文书
学徒工职责
2014/03/06 职场文书
普通话宣传标语
2014/06/26 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
招商引资工作汇报
2014/10/28 职场文书
2014年采购工作总结
2014/11/20 职场文书
关于分班的感言
2015/08/04 职场文书
学习十八大的感悟
2015/08/11 职场文书
2016十一国庆节感言
2015/12/09 职场文书
PyTorch中permute的使用方法
2022/04/26 Python
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript