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爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Python排序搜索基本算法之插入排序实例分析
Dec 11 Python
Django基础知识与基本应用入门教程
Jul 20 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
python3中sys.argv的实例用法
Apr 24 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
Python入门基础之数字字符串与列表
Feb 01 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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
js left,right,mid函数
2008/06/10 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
python GUI模拟实现计算器
2020/06/22 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
爱岗敬业演讲稿
2014/05/05 职场文书
化工实习心得体会
2014/09/09 职场文书
自主招生自荐信格式
2015/03/04 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL