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命名空间详解
Aug 18 Python
Python求导数的方法
May 09 Python
浅谈Python的异常处理
Jun 19 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
用Eclipse写python程序
Feb 10 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
python根据多个文件名批量查找文件
Aug 13 Python
python制作朋友圈九宫格图片
Nov 03 Python
PyCharm第一次安装及使用教程
Jan 08 Python
如何用Python绘制3D柱形图
Sep 16 Python
python利用tkinter实现图片格式转换的示例
Sep 28 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
zf框架的数据库追踪器使用示例
2014/03/13 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP中Array相关函数简介
2016/07/03 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
《理想的风筝》教学反思
2014/04/11 职场文书
一岗双责责任书
2014/04/15 职场文书
《称象》教学反思
2014/04/25 职场文书
食品安全承诺书范文
2014/08/29 职场文书
尊师重教演讲稿
2014/09/04 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
加入学生会自荐书
2015/03/05 职场文书
电影建国大业观后感
2015/06/01 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python