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 相关文章推荐
在Linux下调试Python代码的各种方法
Apr 17 Python
python实现的简单文本类游戏实例
Apr 28 Python
Python实现的简单dns查询功能示例
May 24 Python
itchat接口使用示例
Oct 23 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
Python socket实现的简单通信功能示例
Aug 21 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
python实现登录密码重置简易操作代码
Aug 14 Python
CentOS 7如何实现定时执行python脚本
Jun 24 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/03/04 星际争霸
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
JS 继承实例分析
2008/11/04 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
vue 实现图片懒加载功能
2020/12/31 Vue.js
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
平面设计师的工作职责
2013/11/21 职场文书
中学教师管理制度
2014/01/14 职场文书
学生感冒英文请假条
2014/02/04 职场文书
假面舞会策划方案
2014/05/29 职场文书