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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
python数据结构之二叉树的遍历实例
Apr 29 Python
详解Python中的type()方法的使用
May 21 Python
python 写的一个爬虫程序源码
Feb 28 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
python numpy 显示图像阵列的实例
Jul 02 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
Mac安装python3的方法步骤
Aug 09 Python
解决reload(sys)后print失效的问题
Apr 25 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 Python
结束运行python的方法
Jun 16 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下读取文本文件的代码
2008/07/02 PHP
php程序之die调试法 快速解决错误
2009/09/17 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python距离测量的方法
2018/03/06 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
学术会议欢迎词
2014/01/09 职场文书
法人代表证明书格式
2014/10/01 职场文书
庆七一宣传标语
2014/10/08 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
检讨书范文500字
2015/01/28 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js