数字图像处理系列(一)---绪论
chapter1–绪论
随着疫情的影响,各个大学都开始实施线上授课。我也就算是慢慢结束这慵懒的生活。打算就这每个星期上课的内容做一点点笔记,在每个星期进行梳理,并发布出来,作为一个分享,并让大家给我这个小白看看是不是我的想法有什么错误的地方,以及还需要在那些地方进行改善,哈哈哈,下面就是内容。
1.图像处理的应用实例
人脸识别
人脸识别的过程:
即:输入图像->计算特征-> 逐一比较(库) -> 得到用户ID
质量检测
1.利用可见光的特性,可以利用一般的摄像头对物体表面进行成像,从而
对物体的表面进行分析,实现对产品的质量检测。
2.利用X X 射线的穿透能力,可以形成反映物体内部结构的图像,从而对物体
的内部结构进行分析,实现对产品的内部进行质量检测。
可见随着科技的进步,为了方便我们的生活和提高我们的生活质量,我们生活中随处可见的地方都应用到了数字图像处理技术。
2.图像的概念
####图和像
说到图我们往往会和像产生关联,在之前的时间,我一直都没有屈服什么是图,什么是像,下面我们就把这个概念给理清:
- 图是什么? 物体投射或反射光的分布
- 像是什么?人的视觉系统对图的接受在大脑中形成的印象或反映
这样说来其实图像就是客观和主观的结合。
模拟图像和数字图像
模拟图像
可以用连续的函数进行表示,其函数表示为
I=F(x,y)
其主要特点是:光照强度
和光照位置
。我们之前使用的胶片相机就是使用这个方法成像的。但是随着计算机的发展,计算机只能识别二进制,图像也向着数字化进行发展,因此产生了数字图像。
数字图像
由矩阵(数列构成)。其特点是:空间位置
和灰度
。而且还产生了像素这个概念。而数字图像就是由被称作像素的小块区域组成的二维矩阵。其是离散的,其对于单射灰度图像而已,一个像素的范围是0-255
。
3.什么是数字图像处理
数字图像处理就是利用计算机系统对数字图像进行各种目的的处理从计算机处理的角度可以由高到低将数字图像分为三个层次
。
图像处理
——>图像分析
——>图像理解
- 图像处理:就是对于图像进行像素级别的处理,达到改善视觉效果的作用,主要应用于图像到图像的过程
- 图像分析: 对图像进行分割以及对于感兴趣部分的特征提取,建立对于图像的描述。
- 图像理解—我认为是通过图像还原对于现实事物的分析(大神的世界我不懂)
4.例子:指纹识别系统
其过程是:
- 输入原始的灰度图像,进行去噪声(干扰信息),增强对比度(提高信息量)来实现对于整体化的增强
- 分割,进行二值化和细化,增强局部特征(其实这步我也懵的)
- 进行特征提取,使用库进行指纹识别匹配,输出ID
5.使用工具:
- Visual Studio 2015 及以上(我用VS2019)
- OpenCV 3.0 及以上(官网下载)
- Watch imag插件(用于调试时显示和监视图像变量,直接在VS软件添加扩展)
6.代码作业和例子
1.实现读取图片的功能
//实现读取图片的功能
#include<iostream>
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main(void)
{Mat image = imread("D:/Vistual studio editor/Code/数字图像处理/1.jpg",0)//读入的是灰度图 Gray=R*0.3+G*0.59+B*0.11if(image.empty()){cout<<"无法找到文件!"<<endl;return -1;}namedWindow("image",WINDOW_AUTOSIZE); //窗口始应图像大小imshow("image", image); //显示图像waitkey(0); return 0;
}
2.实现读取摄像头
//实现读取摄像头
#include<iostream>
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main(void)
{//打开摄像头 VideoCapture objVideo;objVideo.open(1)while(1){Mat image;objVideo>>image;imshow("image", image); //显示图像waitkey(10);} return 0;
}
3.对像素的灰度值进行灰度获取(放入文本中)和进行灰度的反转
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>
#include<fstream>int main()
{Mat mImg = imread("D:/图片/壁纸/动漫/1.jpg", 1);if(mImg.empty()){cout<< "文件无法找到,请先检查路径是否正确" << endl;return -1;}Mat grayImage;cvtColor(mImg, grayImage, COLOR_BGR2GRAY); //将图像转换为灰度图 ---Gray=R*0.3+G*0.59+B*0.11//获得图像高度和宽度int height_image = grayImage.rows;int width_image = grayImage.cols;//设置文件流查看全部灰度,以写模式打开文件ofstream outfile;outfile.open("D:/学习课程/大三下学期/数字图像处理/gray.txt");//查看各个像素的灰度for (int row = 0; row < height_image; ++row){for (int col = 0; col < width_image; ++col){//获取灰度图像row行,col列的像素值,最大255int gray_number = grayImage.at<uchar>(row, col); outfile << gray_number << ' '; //输入文本 //修改灰度,进行倒反过来grayImage.at<uchar>(row, col) = 255 - gray_number;}outfile << ' ' << endl;}outfile.close();namedWindow("change_image", WINDOW_AUTOSIZE); //窗口始应图像大小imshow("change_image", grayImage);waitKey(0);return 0;
}
第一周的数字图像处理学习就告一段落了,之后我会每一星期都学一篇来巩固一下学习的过程,一起加油!!!
数字图像处理系列(一)---绪论相关推荐
- 《数字图像处理 冈萨雷斯》绪论——学习笔记
文章目录 什么是数字图像处理 使用数字图像处理领域的实例 伽马射线成像 X射线成像 紫外波段成像 可见光及红外波段成像 微波波段成像 无线电波段成像 使用其他成像方式的例子 数字图像处理的基本步骤 图 ...
- 数字图像处理系列(二)---空间域图像增强-点运算
chapter2 空间域图像增强(点增强) 1.图像增强的基本概念 在不考虑图像降质的情况下,通过经验和试探的方法,把图像感兴趣的部分进行选择性突出,而把不在意的部分进行压制,从而得到我们想要的信息. ...
- pythonopencv介绍_【数字图像处理系列一】opencv-python快速入门篇
本系列python版本:python3.5.4 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的开发环境是jupyter notebook,是一个pyth ...
- 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...
- 视频剪辑,人脸贴纸美颜特效数字图像处理背后的技术-Qt版本
Qt能做什么?其实大部分都是一些c++最擅长的领域,客户端软件,工具软件. Qt最擅长什么?这个看主流的行业巨头,比如Autodesk的3D建模动画软件maya, Adobe的3D贴图绘制软件Subs ...
- 数字图像处理的Matlab实现(1)—绪论
第1章 绪论 1.1 什么是数字图像处理 一幅图像可以定义为一个二维函数\(f(x,y)\),这里的\(x\)和\(y\)是空间坐标,而在任意坐标\((x,y)\)处的幅度\(f\)被称为这一坐标位置 ...
- 【遥感数字图像处理】基础知识:第一章 绪论
第一章 绪 论 ◆ 课程学习要求 主要教学内容:遥感数字图像处理的概念和基础知识,遥感数字图像的几何处理,遥感图像的辐射校正,遥感数字图像的增强处理,遥感图像的计算机分类,遥感数字图像的分析方法, ...
- 【数字图像处理】【个人入门记录】 绪论
[数字图像处理] 萌新入门 一.绪论 1.什么是数字图像处理 1)什么是图像 Ⅰ图: Ⅱ像: Ⅲ图像: 2)什么是数字图像 2.数字图像处理系统 1)获取图像 Ⅰ成像 Ⅱ数字化 采样: 量化 量化结果 ...
- 数字图像处理--冈萨雷斯第4版--第一章 绪论
数字图像处理--冈萨雷斯版--第一章 绪论 第一章 绪论 1.1 什么是数字图像处理 1.2 数字图像处理的起源 1.3 数字图像处理技术应用领域实例 1.3.1 伽马射线成像 1.3.2 X射线成像 ...
最新文章
- LeetCode实战:不同路径
- Linux服务器集群系统(二)--转
- MyBatis相应API
- win下 cmd 查询本机开了哪些端口 并查看开启端口的软件
- NOIP模拟测试29「爬山·学数数·七十和十七」
- MyBatisPlus_通用service篇_入门试炼_05
- 老弟做了个网盘,炸了!
- 包头昆区多大面积_包头地铁“胎死腹中”,何时“卷土重来”?
- Spring Boot2整合Shiro(1):身份认证
- C. Molly's Chemicals
- win7中安装redis
- 从输入url到页面展现发生了什么?
- 《那些年啊,那些事——一个程序员的奋斗史》一
- Vue中使用Echarts构建3D地球
- 【SENCHA TOUCH】页面动画跳转切换
- median函数的使用方法_如何在Google表格中使用MEDIAN函数
- 数据库实体间关联关系:一对一、一对多、多对多
- 618主场之变:谁是后疫情时代消费的主角?
- 在线生成条形码的解决方案(39码、EAN-13)
- Dijkstra算法证明图解
热门文章
- 基于51单片机十字路口红绿灯交通灯+紧急模式
- 解决M1芯片Mac版Maxon Cinema 4D R23 安装不上问题 Mac M1 C4DM1中文直装版安装教程 支持MAC M1芯片处理器
- 3D进阶之OSG:快捷键
- Python实现微信批量发送消息
- 这二李VS那二李,青梅煮好酒,都是真英雄!
- Cocos Creator 的 web/原生多平台 Spine 换装方案解析,附 Demo 源码
- 多项式回归2(Polynomial regression)
- yjv是电缆还是电线_YJVR电缆是什么,它与YJV电缆有什么不同
- 互联网晚报 | 微软将把所有暴雪游戏引入英伟达平台;爱奇艺首次实现全年运营盈利;​客服回应沪上阿姨外包装旗袍图被质疑不雅...
- c语言编写订货系统,基于C语言的仓库订货系统的仿真.doc