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的ORM框架SQLObject入门实例
Apr 28 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
python自动生成sql语句的脚本
Feb 24 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 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实现的css文件背景图片下载器代码
2014/11/11 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
python单例模式实例分析
2015/04/08 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
python3.x上post发送json数据
2018/03/04 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
详解python中@的用法
2019/03/27 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Django 框架模型操作入门教程
2019/11/05 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
英语系本科生个人求职信
2013/09/21 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
大学生学习计划书
2014/09/15 职场文书
出售房屋委托书范本
2014/09/24 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
办公室岗位职责
2015/02/04 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
小学中队委竞选稿
2015/11/20 职场文书
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
python自动化测试之Selenium详解
2022/03/13 Python
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电