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 相关文章推荐
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
详解Django中的权限和组以及消息
Jul 23 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
Python 函数基础知识汇总
Mar 09 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
python实现石头剪刀布小游戏
Jan 20 Python
python向字符串中添加元素的实例方法
Jun 28 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
django model object序列化实例
Mar 13 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
Jun 21 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 数组的创建、调用和更新实现代码
2009/03/09 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
联想台湾官网:Lenovo TW
2018/05/09 全球购物
sort命令的作用和用法
2013/08/25 面试题
经典公益广告词
2014/03/13 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
农业生产宣传标语
2014/10/08 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
邀请书格式范文
2015/02/02 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
死亡诗社观后感
2015/06/05 职场文书
职位证明模板
2015/06/23 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
apache ftpserver搭建ftp服务器
2022/05/20 Servers