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 生成目录树及显示文件大小的代码
Jul 23 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python selenium如何设置等待时间
Sep 15 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
如何基于Python创建目录文件夹
Dec 31 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
Python趣味入门教程之循环语句while
Aug 26 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
python - timeit 时间模块
Apr 06 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.MVC的模板标签系统(一)
2006/09/05 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
简单解析Django框架中的表单验证
2015/07/17 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
Python Process多进程实现过程
2019/10/22 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
小班幼儿评语大全
2014/04/30 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
会计岗位职责范本
2015/04/02 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
呐喊读书笔记
2015/06/30 职场文书