【转载请注明出处:http://blog.csdn.net/leytton/article/details/35991945

配套使用的OpenCV版本:2.4.9 ; Python版本:2.7

主要参考文章(感谢作者分享)

1、OpenCV Python教程(2、图像元素的访问、通道分离与合并) http://blog.csdn.net/sunny2038/article/details/9080047

2、[OpenCV]如何实现人工添加椒盐(Python)http://www.xuebuyuan.com/1378730.html

大部分参考文章1,注释参考文章2

人工添加椒盐主要思想:

随机产生n个坐标(x,y),

使得灰度图的像素img[x][y]=255

RGB图的像素img[x][y][0]=img[x][y][1]=img[x][y][2]=255


人工椒盐代码:

# -*- coding: utf-8 -*-
import cv2
import numpy as np# 随机添加椒盐的函数
def salt(img, n):saltImage = img.copy()  #复制图像for k in range(n):   # 循环添加n个椒盐i = int(np.random.random() * img.shape[1]); # 随机选择椒盐的坐x标j = int(np.random.random() * img.shape[0]); # 随机选择椒盐的坐y标if img.ndim == 2:  # 如果是灰度图saltImage[j,i] = 255elif img.ndim == 3:  # 如果是RBG图片saltImage[j,i,0]= 255saltImage[j,i,1]= 255saltImage[j,i,2]= 255return saltImage img = cv2.imread("dog.jpg")
saltImage = salt(img, 500)
cv2.imshow("image", img)
cv2.imshow("Salt", saltImage)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图:

通道分离与合并代码:

<pre name="code" class="python"># -*- coding: utf-8 -*-
import cv2
import numpy as npimg = cv2.imread("hehua.jpg")#通道分离
b = np.zeros((img.shape[0],img.shape[1]), dtype=img.dtype)
g = np.zeros((img.shape[0],img.shape[1]), dtype=img.dtype)
r = np.zeros((img.shape[0],img.shape[1]), dtype=img.dtype)b[:,:] = img[:,:,0] #img[i][j] 表示[蓝色,绿色,红色]的明亮度
g[:,:] = img[:,:,1]
r[:,:] = img[:,:,2]#通道合并
merged = cv2.merge([b,g,r]) cv2.imshow("Blue", r)
cv2.imshow("Red", g)
cv2.imshow("Green", b)
cv2.imshow("Merged", merged)
cv2.waitKey(0)
cv2.destroyAllWindows()

通达分离与合并效果图:


转载于:https://www.cnblogs.com/leytton/p/8253391.html

OpenCV数字图像处理(5) 像素访问之添加椒盐实例 通道分离与合并相关推荐

  1. OpenCV数字图像处理基于C++:灰度变换

    OpenCV数字图像处理基于C++:灰度变换 1.1 灰度变换概念 在图像预处理中,图像的灰度变换是图像增强的重要手段,灰度变换可以使图像对比度扩展,图像清晰,特征明显,灰度变换主要利用点运算来修正像 ...

  2. 《opencv 数字图像处理 图像基础》

    <opencv 数字图像处理 图像基础> 矩阵 通道分离和合并 彩色图像转灰度图像 灰度图转二值化图像 图像运算 矩阵 定义一个显示图像的函数,对于灰度图,里面添加了vmin=0,vmax ...

  3. OpenCV数字图像处理学习平台

    原始图像1-1 处理中的图像1-2 处理结果1-3(检测到所有圆) OpenCV数字图像处理学习平台,是一款可视化.交互式方式学习OpenCV的工具软件,由资深计算机视觉专家精心打造,花费近两年整理成 ...

  4. OpenCV Python教程(2、图像元素的访问、通道分离与合并)

    OpenCV Python教程之图像元素的访问.通道分离与合并 转载请详细注明原作者及出处,谢谢! 访问像素 像素的访问和访问numpy中ndarray的方法完全一样,灰度图为: [python] v ...

  5. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  6. OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并

    OpenCV与图像处理学习一--图像基础知识.读入.显示.保存图像.灰度转化.通道分离与合并 一.图像基础知识 1.1 数字图像的概念 1.2 数字图像的应用 1.3 OpenCV介绍 二.图像属性 ...

  7. opencv进阶学习笔记2:numpy操作图像,色彩空间,查找指定颜色范围,通道分离与合并

    基础部分传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录: python+opencv进阶版学习笔记目录(适合有一定基础) Numpy操作图像 1.遍历图像每一 ...

  8. c++ opencv数字图像处理:访问图像像素,遍历图像像素

    文章目录 前言 一.访问图像像素 1.访问(j,i)处像素 2.例子:在图像中加入白色椒盐噪声 二.遍历图像像素 1.指针扫描 2.opencv自带的卷积运算:filter2D 前言 数字图像处理c+ ...

  9. c++ opencv数字图像处理:频率域滤波--高通滤波--高斯高通滤波

    文章目录 前言 一.高斯高通滤波器(GHPF) 二.代码 前言 数字图像处理c++ opencv(VS2019 opencv4.53)持续更新 一.高斯高通滤波器(GHPF) D 2 ( u , v ...

最新文章

  1. monkey自定义脚本实践
  2. 怎么截取图片大小 html,详解html2canvas截图不能截取圆角图片的解决方案
  3. mahout安装测试
  4. Yii 框架学习--01 框架入门
  5. CentOS7 系统基于Vim8搭建Go语言开发环境
  6. 判断字符是否在1-15之间
  7. Sublime Text for Mac的快捷键
  8. KubeFlow安装指南
  9. datagridview列 值提取_Excel学校如何提取教职工员工名单-Leo老师
  10. Java中字符串的学习(一)String类的概述及常见方法使用
  11. 3年前的一个小项目经验,分享给菜鸟兄弟们(公文收发小软件:前期需求调查部分)...
  12. jenkins+saltstack+pipeline 部署springcloud 多模块jar包
  13. MVC @Html.TextBox 添加属性和样式
  14. 柳氏管理学:自己不会,就要勤做笔记
  15. 开发S2B2C商城系统需要多少钱
  16. 逍遥子张勇:CEO要更多思考“长远的事”和“不可为的事”
  17. SQL AlawaysOn 之四:故障转移集群
  18. sublime3编程c语言,Sublime Text 3 实现C语言代码的编译和运行(示例讲解)
  19. RMQ---csu1809
  20. 国内如何用chatgpt

热门文章

  1. 浅议DAS、NAS、SAN三种存储架构
  2. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析
  3. warnings.filterwarnings(ignore)
  4. FPGA中LUT、 LATCH 、FF
  5. Ethereal使用入门
  6. Expect 安装 on centos7
  7. mac系统下安装、启动、停止mongodb
  8. java mp3播放器 无界面
  9. AngularJS 指令实践
  10. poj3264 - Balanced Lineup(RMQ_ST)