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 异常处理的实例详解
Sep 11 Python
浅谈numpy数组的几种排序方式
Dec 15 Python
python实现xlsx文件分析详解
Jan 02 Python
python3.x实现发送邮件功能
May 22 Python
Django中的文件的上传的几种方式
Jul 23 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
Python创建或生成列表的操作方法
Jun 19 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
python如何把字符串类型list转换成list
Feb 18 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
sphinx增量索引的一个问题
2011/06/14 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php解决安全问题的方法实例
2019/09/19 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
ztree实现权限横向显示功能
2017/05/20 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
学校办公室主任职责
2013/12/27 职场文书
我未来的职业规划范文
2014/01/11 职场文书
春节晚会主持词
2014/03/24 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js