最近在学数字图像处理,图像基础包括以下部分:

导入库

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv

图片展示函数

def show(img):if img.ndim == 2:plt.imshow(img,cmap='gray')else:plt.imshow(cv.cvtColor(img,cv.COLOR_RGB2BGR))plt.show()

图像的矩阵表示

A = np.random.randint(0,256,(2,4),dtype=np.uint8)
print(A)
show(A)
B = np.random.randint(0,256,(2,4,3),dtype=np.uint8)
print(B)
show(B)

结果如下图所示:

通道合并与分离

img = cv.imread('C:\PerfLogs\pc.jpg')
b,g,r = cv.split(img)#分离
show(b)
show(g)
show(r)
img_new = cv.merge([b,g,r])#合并通道

分离后的三通道显示出来的图像

合并后的图片为:

彩色图转灰度图

gray1 = 0.299*b + 0.587*g + 0.114*r
#opencv自己提供的函数实现彩色图转灰度图
img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
show(np.hstack([gray1,img_gray])

图像的二值化

thresh = 125
gray2[gray2>thresh] = 255
gray2[gray2<=thresh] = 0
#opencv自带的函数
ignore,img_bin = cv.threshold(gray2,125,200,cv.THRESH_BINARY)

两图像的加减乘除

#图片的加载+调整图片大小
obj = cv.imread('C:\PerfLogs\pc.jpg',0)
obj = cv.resize(obj,(550,550),)#调整图片大小
bg = cv.imread('C:\PerfLogs\pc1.jpg',0)
bg = cv.resize(bg,(550,550),)
mask = cv.imread('C:\PerfLogs\pc2.jpg',0)
mask = cv.resize(mask,(550,550),)
noise = cv.imread('C:\PerfLogs\pc3.jpg',0)
noise = cv.resize(noise,(550,550),)

图像根据一定比例相加

img_add1 = cv.add(noise*0.5,bg*0.5)
img_add2 = cv.addWeighted(noise,0.5,bg,0.5,0)#opencv自带的函数
show(np.hstack([img_add1,img_add2]))


两图像相减

img_sub = img_add2 - noise*0.5
show(np.hstack([bg,img_sub*2]))


两图像相乘

mask = mask/255.#归一化
img_mul = obj*mask
img_mul2 = cv.multiply(obj*1.0,mask)
show(np.hstack([img_mul,img_mul2]))


两图像相除

img_div = obj/(np.float64(noise)+1)
img_div2 = cv.divide(obj,noise+1)
show(np.hstack([img_div,img_div2]))

(不知道弄了啥)

图像的线性和非线性变换


图像的线性变换

#线性变换
img = cv.imread('C:\PerfLogs\pc.jpg',0)
b = 20
k=2
img2 = b+k*img.astype(np.int32)
show(np.hstack([img,img2]))


图像的非线性变换

img01 = img/255
img05 = np.power(img01,0.5) * 255
img15 = np.power(img01,1.5) * 255
show(np.hstack([img05 , img , img15]))


由三张图片对比可得,幂次越小,图片越亮,幂次越大,图片越暗。符合如下的图像。

数字图像处理之图像基础相关推荐

  1. 数字图像处理概述及基础

    1 数字图像处理概述及基础 书籍:<MATLAB图像处理 理论.算法与实例分析>;蔡利梅编著:清华大学出版社 个人学习笔记记录,欢迎交流批评. 1.1 图像与数字图像处理 1.图像:二维信 ...

  2. 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验

    图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...

  3. 数字图像处理:图像的频域

    数字图像处理:图像的频域 一.图像高频信号和低频信号的理解 1.1 图像中的低频信号和高频信号也叫做低频分量和高频分量. 1)空间频率指的是图像中灰度值相对它的邻居点变化方式.如果一副图像中灰度从一边 ...

  4. 视频教程-数字图像处理实战-算法基础

    数字图像处理实战 河海大学计算机硕士毕业,现就职于南京华为研究所,从事嵌入式软件开发工作.热爱模式识别及机器学习算法. 金圣韬 ¥70.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...

  5. 数字图像处理:图像金字塔

    转载请标明出处:数字图像处理:图像金字塔_数字图像处理opencv_新浪博客 (一)概念 以多个分辨率来表示图像的一种有效且概念简单的结构是图像金字塔.图像金字塔最初用于机器视觉和图像压缩,一个图像金 ...

  6. 数字图像处理 - Ch2 图像取样与量化

    数字图像处理 Ch2 图像取样与量化 图像取样与量化 概念 数字图像表示 线性索引与坐标索引 空间分辨率 & 灰度分辨率 图像内插 1. 最近邻内插 2. 双线性内插 3. 双三次内插 其他方 ...

  7. 数字图像处理--基本图像操作

    数字图像处理–基本图像操作 1 主要内容 (1)搭建能运行图像算法程序的平台: (2)独立完成matlab矩阵基本操作,如矩阵信息的提取包括获取矩阵大小.矩阵维数.矩阵元素个数.向量长度和矩阵乘法等操 ...

  8. 数字图像处理:图像的灰度变换(Matlab实现)

    数字图像处理:图像的灰度变换(Matlab实现) (1)线性变换: 通过建立灰度映射来调整源图像的灰度. k>1增强图像的对比度:k=1调节图像亮度,通过改变d值达到调节亮度目的:0 i = i ...

  9. 实验1 数字图像处理的MATLAB基础,《数字图像处理(实验部分)》实验1_数字图像处理中MATLAB使用基础...

    <数字图像处理(实验部分)>教案 实验一:数字图像处理中MATLAB使用基础实验 一. MATLAB软件安装 二. 进入MATLAB运行环境 三. MATLAB编程基础 3.1.变量 预定 ...

最新文章

  1. 第三章 达瑞,一个很能挣钱的男孩
  2. ubuntu15.04中安装mysql和mysql-workbench
  3. python定义一个类描述数字时钟_python自定义时钟类、定时任务类
  4. 二十八、Node.js中的RESTful API和接口设计
  5. mysql 基础选择题_mysql基础12(mysql练习题)
  6. 第六十节,文本元素标签
  7. mysql归档日志满了_MySQL核心知识学习之路(1)
  8. 5.7.22mysql charset_Mysql5.7.22 坑爹的 `character_set_database`
  9. Jpeglib使用指南, 各种压缩包的压缩和解压方法, 开源社区分裂史
  10. Catalan数(数论)
  11. 选择不相交区间(贪心算法) By ACReaper
  12. 云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据
  13. POJ1209 UVA158 Calendar题解
  14. 为何吾博客周排名没有数字显示?
  15. 抖音的服务器究竟有多大?
  16. Pick peaks
  17. vuejs中使用vuex的两种方案之一
  18. CentOS7.2下一键安装Openstack
  19. 七牛云存储java上传图片
  20. Ubuntu查看Linux系统版本号

热门文章

  1. Python—实训day7下—Pandas统计分析基础
  2. IOS开发基础之绘制饼图、柱状图、自定义进度条
  3. python功能代码_整理几个常用的Python功能代码片段【收藏】
  4. oracle改成归档模式_oracle 11g开启归档模式及修改归档目录
  5. c 调用c语言写的dll文件路径,手把手教你用C/C++语言创建及调试动态库DLL程序
  6. mysql 汇总行_MySQL查询汇总行的值并对结果进行排序?
  7. 计算机理论专业研究生论文课题,计算机理论方向论文选题 计算机理论论文标题如何定...
  8. JAVA-基础(查找文件夹内文件)
  9. 领域驱动设计-3-模型的管理
  10. 三十六、rsync通过服务同步、Linux系统日志、screen工具