首页 > 其他分享 >数字图像处理学习笔记(一)

数字图像处理学习笔记(一)

时间:2024-03-21 11:01:37浏览次数:32  
标签:github 数组 python 数字图像处理 笔记 学习 https 图像 com

数字图像处理学习笔记(一)

digital_image_process

数字图像处理学习笔记, 根据以下学习指南进行:

  1. 学习用书: 数字图像处理 MATLAB 版 冈萨雷斯著

    推荐两本书,一本偏理论, 一本偏代码实战(Matlab), 打包下载地址: 链接:https://pan.baidu.com/s/1Ir3vW_GwTOXbX-QIHkLkxA
    提取码:nd2a

    偏理论: <数字图像处理_第三版_冈萨雷斯>

    偏实战: <数字图像处理(MATLAB版)(中译版)[冈萨雷斯]>

    包含书里的图片素材

  2. 学习内容: 第 1 章、 第 2 章、 第 3 章、 第 6 章、 第 9 章的 9.1~9.3 小节、
    第 10 章的 10.1~10.3 小节、 第 11 章的 11.1~11.2 小节

  3. 学习要求:为了增强理解,需要根据自己对方法的理解编写相应的 matlab程 序,
    书中的示例程序可以作为参考。

  4. 图像处理高阶算法
    学 习 内 容 : SIFT[1], LBP[2], BoW[3], affine transformation[4], similarity
    transformation[5]

    [1] material: https://blog.csdn.net/zddmail/article/details/7521424

    code: https://github.com/sun11/sw-sift (matlab 版)

    https://github.com/paulaner/SIFT (python 版)

    [2] material: https://blog.csdn.net/heli200482128/article/details/79204008

    code: https://github.com/michael92ht/LBP ( python 版)

    https://github.com/bikz05/texture-matching ( python 版)

    [3] material: https://blog.csdn.net/tiandijun/article/details/51143765

    code: https://github.com/qijiezhao/SIFT_BOW_Usage ( python 版)

    https://github.com/lucifer726/bag-of-words- ( python 版)

    [4] material: https://www.cnblogs.com/ghj1976/p/5199086.html

    [5] material: https://blog.csdn.net/u014096352/article/details/53526747

说明

由于MATLAB基本操作之前学过,主要对遗忘的内容进行笔记;
除了MATLAB代码,加入相关Python3代码。其中使用opencv-python
pillow(PIL)
skimage等工具。

很久之前的笔记, 适合CV初学者进行学习

内容列表(已完成)

  • CH01_CH02:MATLAB数据类型与基本操作;
  • CH03:gamma亮度与对比度拉伸变换,直方图均衡化与匹配,空间滤波
  • CH06:索引图像概念,图像提取&分离通道,彩色空间转换,彩色映射变换,彩色图像空间滤波,彩色边缘检测,彩色图像分割
  • CH09:膨胀,腐蚀,顶帽,黑帽,击中或击不中变换,查找表
  • CH10:点、线检测(canny、Hough),阈值处理
  • CH11:链码、最小周长多边形的多边形近似、标记、边界片段、骨骼
  • 高阶:SIFT

第一章 绪论

使用MATLAB图像处理工具箱IPT函数,并且本书开发了新函数,每个函数的源代码包含在各章节或附录C中

第二章 基本原理

Matlab支持图片格式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图像操作

1.读取图像:f=imread('xxxx.jpg')
2.读取行列:[m,n]=size(f), whos f显示数组附加信息。第一维表示垂直方向,size(f,1)表示行数
3.显示图像:imshow(f,G) 若将G省略,默认灰度级数为256;G=[low high]表示low以下为黑,high以上为白;G=[ ]表示low默认为f中最小值,high为最大值
4.函数pixval:交互显示单个像素亮度值;若按住鼠标左键不放,可用于测量距离
5.保存图像:imwrite(f,'xxxx.jpg')

  • JPEG压缩:imwrite(f,'xxx.jpg','quality',q) q为0-100的整数,q越小图像退化越严重
  • 可用imfinfo计算压缩率
K=imfinfo('test.jpg');   
image_bytes = K.Width*K.Height*K.BitDepth/8;   
compressed_bytes = K.FileSize;   
compressed_ratio = image_bytes/compressed_bytes;   

K结构体成员如下图
在这里插入图片描述

  • tif同分辨率尺寸缩放

数据类

在这里插入图片描述

图像类型

  • 亮度图像(Intensity images)
  • 二值图像(Binary images):数据类为logical。A为由0、1构成的数值数组,B=logical(A),islogical判断
  • 索引图像(Indexed images)
  • RGB图像(RGB images)

数据类与图像数据类型间的转换

  • 数据类转换:B=logical(A)或uint8(A); double转uint8,会将[0 255]以外去掉,然后去掉小数点部分
  • 图像类型转换:
    • im2uint8:[0 1]范围内乘255,范围外置为0,1。
    • im2uint16:与int8类似,65535。
    • mat2gray:只能输入double,转换为[0 1]的double;mat2gray(A,[Amin,Amax])规定转换后的0,1。
    • im2double:若输入为uint8,每个值除以255;若为uint16,除以65535。
    • im2bw:im2bw(f,T)T的取值为[0 1];若输入uint8,会先每个值除以255;可以用关系运算’gb=f>2’替代。

数组索引

  • 向量索引:v([1 4 7])
  • 矩阵索引:
    1.A(D),D为逻辑数组,将所有为1的以列向量排列
    2.一个:,将全部元素以逐列形式排成一个列向量,sum(A(:))等价于sum(sum(A))

例2.5

  • 垂直翻转fp=f(end:-1:1,:);
  • 二次取样fs=f(1:2:end,1:2:end);

标准数组

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

运算符

1.算数运算符
在这里插入图片描述
在这里插入图片描述

  • max&min
    在这里插入图片描述

2.关系运算符 ~=
3.逻辑运算符 & | ~
在这里插入图片描述
在这里插入图片描述

代码优化

  • tic toc 计时;t1/(t2+eps)
  • 预分配数组

单元数组与结构体

//单位数组
c={'guess',[1;2],3}
c{1}
//结构体
field='first';
value=1;
c=struct(field,value);

标签:github,数组,python,数字图像处理,笔记,学习,https,图像,com
From: https://blog.csdn.net/qq_44710568/article/details/136831088

相关文章

  • Asp-Net-Core开发笔记:实现动态审计日志功能
    前言最近一直在写Go和Python,好久没写C#,重新回来写C#代码时竟有一种亲切感~说回正题。在当今这个数字化迅速发展的时代,每一个操作都可能对业务产生深远的影响,无论是对数据的简单查询,还是对系统配置的修改。在这样的背景下,审计日志不仅仅是一种遵循最佳实践的手段,更是确......
  • Alize 声纹识别 学习笔记 失败了
    源码地址https://github.com/ALIZE-Speaker-Recognition/alize-corehttps://github.com/ALIZE-Speaker-Recognition/LIA_RALhttps://gitcode.com/ibillxia/VoicePrintReco/tree/master项目目录目录简介LIA_RAL_2.0里面为了更好地满足每个人的需求,ALIZÉ采用了多层架构。......
  • Alize 声纹识别 学习笔记2 失败了
    alize源码https://github.com/ALIZE-Speaker-Recognition/alize-corehttps://github.com/ALIZE-Speaker-Recognition/LIA_RALLIA_RAL提供了四个官方例子https://alize.univ-avignon.fr/https://alize.univ-avignon.fr/doc/01_GMM-UBM_system_with_ALIZE3.0.tar.gzhttps://......
  • 【安卓漏洞挖掘】drozer--安卓四大组件的漏洞学习
    drozer:drozer(以前称为Mercury)是一款强大的开源Android安全评估框架,旨在帮助安全研究人员和渗透测试人员发现并利用Android设备和应用程序中的潜在安全漏洞。通过drozer,用户可以在设备上或远程执行一系列安全测试,包括但不限于:访问及控制本地应用:通过API探索和操作已安装的应用程序......
  • 这50个学习Python的爆赞的资源,你用过几个?
    欢迎关注我的专栏:今天给大家分享一下,不同阶段的Python学习者从不同角度量身定制了50个学习资源,建议收藏!01初学者1.Welcometohttp://Python.orghttps://www.python.org/官方Python站点提供了一个开始使用Python生态系统和学习Python的好方法,包括官方文档。2.Lear......
  • WinClip非官方复现代码学习笔记2
    一、数据集加载1.数据集放置将下载的数据集解压到datasets文件夹的下面,方便后续操作。2.数据集预处理数据集预处理针对两个数据集给了两个不同的预处理指令,我测试了VISA数据集,以下是我对VISA数据集的实例。1.datasets/prepare_visa_public.py文件配置打开这个文件,第1......
  • 鸿蒙 HarmonyOS学习日记 Day 1 安装与入门
    提示:学习本课程应该有一定的前端基础文章目录一、学前准备1、了解官网2、进行下载3、初始化4、项目创建二、ArkTS基础入门1、认识和存储数据2、数组3、函数4、箭头函数5、对象6、联合类型7、枚举类型一、学前准备1、了解官网https://www.openharmony.cn/mainP......
  • 鸿蒙 HarmonyOS学习日记 Day 2 界面开发、布局
    文章目录一、界面开发1、代码书写方式2、界面开发-布局思路3、组件的属性方法4、文字溢出省略号、行高5、Image图片组件6、输入框与按钮四、综合实战-华为登录五、svg图标六、布局元素的组成二、单位问题一、界面开发1、代码书写方式1、代码块在build()方法中书......
  • 推荐系统实现-笔记(2)
    推荐系统实现(1)推荐系统Demo实现笔记:系统概述本推荐系统采用基于内容的推荐算法,旨在为用户提供与其已收藏内容相似的新内容推荐。系统设立了两级过滤机制,以提高推荐的准确性和实用性。第一级过滤根据语料自身的标签进行推荐,第二级过滤则基于第一级过滤得到的标签,计算每个类别中......
  • C#笔记-异常处理
    一、引言1、什么是异常异常是程序运行时发生的不正常或错误情况。异常会打断程序的正常流程,导致程序终止或产生不可预测的结果。2、为什么要处理异常提高程序的健壮性和稳定性。提供友好的错误提示,提升用户体验。方便开发者定位和修复问题二、C#中的异常处理机制1、tr......