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进行基础的函数式编程的教程
Mar 31 Python
Python抓取电影天堂电影信息的代码
Apr 07 Python
python3+requests接口自动化session操作方法
Oct 13 Python
python制作填词游戏步骤详解
May 05 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
Python脚本调试工具安装过程
Jan 11 Python
python在协程中增加任务实例操作
Feb 28 Python
利用Python判断你的密码难度等级
Jun 02 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 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
基于PHPExcel的常用方法总结
2013/06/13 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
Three.js基础部分学习
2017/01/08 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
2013年高中生自我评价
2013/10/23 职场文书
大学活动总结范文
2014/04/29 职场文书
求职信格式要求
2014/05/23 职场文书
开展读书活动总结
2014/06/30 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server