00:00
好了啊,嗯,咱们这个上午的话呢,咱们讲到了叫做呃,MATLAB来产生这个TST,然后呢,我们利用vlo读取TST,然后读取完之后呢,我们又经过了这个,呃,现在就是说这个对数据的加工和变换吧,我们产生了数据产生哪了,是不是产生到这个叫做gray上了,对吧?那么G上面的话呢,我们怎么样把它在变成图像呢?上午一直在说是吧,你最起码让你产生数据了,这数据对不对呢?数据看着都是没问题的,但是有一个问题啊,你只能知道说你计算那几个没问题,其他几个呢,诶从某种意义上来说应该也是没有问题的,但是呢,你终究要看一下这个成品是个什么样子,那这个成品肯定是什么,就是图片嘛,对吧,所以呢,我们来讲怎么来去产生图片呢。
01:00
所以我们TB里边啊,我们就开始做一系列的研究了,T里边怎么写呢?注意啊,那这么来做TB里边首先第一件事干什么呢。啊,跟咱们这个modelip一样啊,就第一件事,Fit啊,我们叫fit等于Dollar f open,打开一个文件,什么文件呢?这个文件就是g date.txt。啊,这就是打开。啊,那如果没有这个文件怎么办?没有这个文件,他就会给他新建一个。啊,在这也不用指定它到底是用什么方式打开,直接就可以了,因为读的话都是用上面这种来读,没有人说用这个打开这种方式来读的懂了吧,所以这种方式方法都是什么,都是血对吧?好这是不是打开了,打开之后干什么呢。打轴干什么呢?我们是不是往里写数啊,怎么写的,是不是是不是就是写的这个GY啊,所以怎么写呢,我们就让它延时完20之后往里写数,这个写数怎么写呢?是Dollar。
02:10
F display。啊,Display是个打印的意思,F display是往文件里打印啊f display括号打印什么呢?啊,Fid里打印,然后逗号啊逗号打印什么呢?双引号以百分号D的形式打印就可以了,比如说为什么它可以2%D打印呢?因为MATLAB来读取的时候是可以用。百分之D来读取的啊,如果要是不行,我们就只能百分号X了,对吧?哎,百分值是可以的啊,然后打印的谁呢?打印的就是灰度值。啊,打印的就是灰度值,那有人说那这个当中不需要,这个当中不需要去。
03:03
去加上这个反斜杠,就是说换行嘛,注意不用啊f display是自动换行。就是他没打印完了再打印的f display就干什么,它会自动换行的啊,它会自动换行的,好了,那么等打印完事以后呢,我们再把这个文件给关闭了啊,就是Dollar f。Closed啊,这就可以了,所以这就是一个非常简单的打开往里写,写完之后给它关闭的这样一个过程,做完了之后呢,我们同样的去做一次仿真就可以了。啊,注意这个文件谁产生的呢?其实注意啊,它根本就不是courts产生的,它是model SIM产生的啊,因为cor它不执行TB的啊。26行啊,这有个问题,等一会儿啊。这个fid的需要去定义一下啊,这个fid需要定义一下,定义成什么呢?定义成这个类型的啊,叫integer啊,是叫做integer类型的啊,整形的inter啊fid就可以了,然后重新去运行一下就行。
04:20
嗯。好在这里什么都不用管,让他跑完就行了,跑完了之后呢,比如说那这个文件在哪呢?啊,这个文件我们给大家来找一下啊,因为咱们是用cor启动的Mo啊,所以呢,在哪呢,它应该在我们的PRJ它。这个当中啊,他没有在msm里边去吧,跟没关系啊,在QPR街里边,在ST simulation里边有一个model SIM,在model SIM里边有一个。Gray date.txt这些就是我们用模SIM来产生的,那么把这个文件给打开,打开之后呢,可以看到是吧,里边有什么。
05:04
394043444544啊,然后呢,一直到多少呢。最后到165388116388对不对呢?我也不知道是不是可以算一下这个文件形式多少是346乘以478等于165388。是吧?是不是165388了,不用乘以三了,为什么?因为灰度值一个点就是一个点呢?所以现在我们的T是不是有了。大家来想,是不是灰度TXT有了好右键,我把这个TXT复制一下啊,我复制了一下放到哪儿呢?放到咱们的这个。MATLAB里边了啊,放到ma MATLAB里边了,然后呢,我们再放到MATLAB里边,然后把这个关掉。
06:01
然后再新建个脚本。啊,另存为啊,给它起个名字叫RD_TXT_MY啊,我也不知道他有没有这个名字,所以我给它搞了一个带MY的,这肯定是我自己做的是吧,然后呢,他这是不是也识识别到这里面有的这个玩意儿了,那怎么读呢?怎么读呢?怎么去读取它呢?啊,怎么去读取这个文件呢?呃,其实这些东西的话,大家可以不会的话怎么办呢?其实很简单,最重要是这个思路。啊,你要不会了怎么办?不会去百度啊。就是百度一下怎么样能够读回来这个MATLAB怎么来读T嘛,对吧,那在这我们教大家一种比较简单的方法什么呢?第一种的话就是啊,就是我们这种啊怎么做呢?第一件事一样的啊,Fid等于f open打开,打开谁呢?Gray date.txt以什么形式打开呢?以RA的形式打开,好这是第一件事把它打开了。
07:13
第二件事干什么呢?是获取这个里边所有的东西啊,获取里边所有东西怎么获取呢?比如说我们起个名字叫,叫什么叫gray date等于什么呢?就等于FSCF。呃,应该是叉,呃F叉吧,然后以什么形式获取呢?以百分号D的形式获取啊,以百分号D的形式获取啊就可以了,从哪啊就是这这个意思啊,从ID获取啊,获取多少个呢?啊,在后边也可以加数,比如获取100个或者1000个都可以的,但是这个的话呢,咱们是全部获取,所以就不用管了。好,那么在这我们来做一下,你看啊,我们来help一下这个函数啊,这个函数我忘了是不是这个FCNF。
08:07
啊,你看是吧,FSNF这叫做fid,再加上这个格式,然后再加上多少对吧?啊,你下边也有也有例子是吧?比如说你看它是打开了一个这个文件啊,然后呢,去获取一下,诶它这是它这是它这是打印啊。我们要找的是获取获取获取在这啊,它的获取是这个fid,因为ID不就等于这个吗。是吧,就打开嘛,对吧,然后第二个是以什么格式,它那个它格式不是定的百分之F嘛,是不是跟他写的一样了,对吧,获取一下,这是不是现在就获取过来了。啊,获取过来之后呢,我们在这先运行一下。啊,这样我们在前面给他加句话,叫做clc和C,省得别的东西在误导我们。
09:01
好,是不是就获取回来了,获取回来之后呢,你看是不是里边获取了15165388。叉一,但是它获取出来是什么类型的。是double类型的对吧,他这个double类型的,所以对我们来说的话呢,啊,我们想办法给他干什么,我们也可以给他强制的改成什么。改成一个我们所谓的叫做,因为它是一个无符号的八位对吧,UT8对吧,你也给他强制的改一下也行,但是现在先不改也行啊,现在先不改也行,无所谓,那么好了,现在的问题来了。你说什么问题呢?这个里边它不是获取了这么多数据吗?但是这个数据的话,它是什么,它是不是一维的。能想明白吧,它是不是个一维的图片啊,它是个一维的,那对我们来说干什么,我们是不是要获取一个什么,是不是最起码说它你要把它弄成图,它这最最起码是个二维的图吧,是不是应该是个二维的图啊,那怎么样把这个一维的数据改成二维的呢?
10:07
所以在这需要大家自己去对应一下,怎么对应呢?For循环I等于多少呢?这问题看一下我们这图片多大啊。我的图儿多大来着?还记不记得?36.478。啊记你记得拿确定啊,一到346FOR循环接等于一到478是吗。你说是就是了啊,看一下看一下别吓着你了啊,346乘以478是吧?啊,346乘以478好了,那么在这那比如说我们有一张图片,这个图片叫PG,比如这个是我们自己做的是吧,就是我或者我们是ipg读回来的对吧?那么这张图的话呢,I逗号J应该等于什么呢?它应该等于UT8啊,就是一个转换,这个转换我们可以先不写,那它应该等于什么呢?它应该等于什么呢?它肯定应该等于gry date多少呢?
11:25
是不是就来计算了,比如说怎么来计算呢?我们来举个例子啊,你比如说现在我有什么,现在我这儿呢,有这个五排五列。啊,五排五列的凳子,比如我一共有25个凳子,对吧,然后呢,我这有25个小朋友是排了一队站好的,是排了一队站好的,对吧,那排了一队站好,我说来吧,第一个小朋友坐第一排,第二第一列,第二个小朋友坐。这个第一排第二列,然后一直做做第一排第五列,然后那第六个小朋友是不是应该做第二排的第一列了,那现在比如说我说那第。
12:04
哀行地接裂的时候坐的这个小朋友是第几个小朋友啊?17岁嘛,是不是其实这个,其实这个不限什么,其实前面这个不限什么,现在就是算第I排地接列所做的是第几个小朋友了,对不对,灰度数据里面是不是就是一排啊。对吧,那么对于你来说。那我来问个问题,第一排第一列做第几个,第一个对吧,那咋出来的。啊。对不对,想想或者说我现在我不说,我不说我们是五排五列了,我说我们是一排当中能坐四个小朋友,总共有六排,我有24个小朋友那题。第三排第二列应该做应该做的小朋友第几个?
13:02
嗯。第三排第二列坐第几个?我说一共有每一排有四个人,每一排能坐四个小朋友,第一排坐四个,第二排坐四个,第三排坐四个,一直坐着,坐满六排,那我问你第三排第二列坐小朋友第几第几个人?立减。第几啊,第十个对不对。第一排坐一到四,第二排坐五到八,第三排第一个不是第九,第二个不就第十吗?这没算错呀,来想想你们想你们心里,你们心里想的是第几个?你们心里想的是不是三乘四加二啊,那是三乘四加二吧,二乘二。应该是二乘四加二是吧?啊,为什么呢?因为很简单一个问题,就是你的第一排应该做的是第一个人,所以你不能上来就一乘四了,对吧?所以在这的话应是什么呢?应该是排数是I排,所以说I要减去一,然后括号乘以几呢?乘以理工有多少列,有多少列呢?
14:13
现在有478列,然后再加上减。啊,应该是这个数值啊。这好像是很简单的问题,我问你,第四,第三排,第二列。坐的是第几个人呢?首先你应该先算什么,首先你应该先算一件事,你先不要去算什么,你先不要去算,说他直接他是多少,你先算他前面一共有几排啊。他前面有几排啊,你是你是第三排,所以你前面有得有两排,那两排有多少人啊。是不是你要算每一排有多少人啊,所以我们这算了什么?I减一啥意思?就是你前面有多少排?有人说,注意啊,在MATLAB当中,I和J都是从几开始的,从一开始的,不是从零啊,所以你是第I排,那你前面有几排啊?I减一排,I减一排一共有几个人啊?
15:13
就是乘以你这一排里面有多少个人嘛,478,那好了,这个是不是算了,就是说你前面一共多少人了,那再算就是你左边有多少人了吧,你左边有几个人啊,那很简单的问题,就是你是第几列,你的左边就应该有你的数字减一列,比如你前面你左边有两个人。那么你就应该是第三号。对不对,所以你现在是第三列嘛,你现在第三列,那你就准备有两个人,然后你那你是第三个嘛,所以就是接减一,然后再加一就不用动了是吧,你接减一就是你左边有多少个人,你再加一就是那算你自己啊,你又不是算你左边有几个人嘛,对吧,所以还是杰是不是这个样子啊,好,这就做完了。
16:02
做完之后呢,我们给它起个名字。我们起个名字,就起这个名字。嗯。好,我们在这把它给关闭了啊。那我们叫这个名字ID是吧,好,现在就是打开。这个文件获取,获取了之后是一个Bob类型的,然后呢,我们把它再从一个一维的给它转成了一个二维,转完之后把它给文件关闭,然后呢,把它给。
17:00
显示出来,其实这个关闭可以在哪关闭,可以在这儿可以关闭了,因为你打开之后获取有呀。打开之后获取,获取完事之后,其实就可以把它关闭了,对吧?好了,那么在这种情况下的话呢,有人这能做对吗?告诉大家这做不对啊,这为什么做不对呢?因为这个玩意儿的话呢,它是什么?它是一应该是一个图片,它应该是一个无符号八位的,但是默认读过来之后是个什么玩意儿呢?是个double类型呢,是不是double类型呢?所以怎么办?所以我们在这做一次强转是吧?U int8对,把它强行的转成这个值好,转完之后呢,我们再来运行。好,这就是一张。我们通过什么?我们通过就是。MATLAB读取原图像,然后产生原图像TXT,然后经过ipga转成了数据,然后我们又把数据又读回到MATLAB,进而又产生了一部灰度图像。那么这个灰度图像。
18:09
与。人家自己产生的恢复图像有什么区别呢?所以在这儿我们也可以干什么呢?我们也可以说去做一下,就是让大家来看一下,就是说他自己的混图像长什么样子,对吧,那怎么做呢?就是比如叫pic。RGB等于I red是2.jpg,然后这个是原图啊,原图我们就不看了啊,然后呢,就是pic_GR ray等于。呃,我们叫RGB two GY,呃,下划线PC上划线RGB,呃,然后下边就是显示。呃,显示的话就是显示的是pic,它然后呢,但是它这个名字就叫pic,它的MATLAB啊,这就是说我们有一张图的名字叫pic matlab1张图叫IC,它的ibga,这张图是这个原图用MATLAB来转成的灰度图,这个图。
19:17
下面这个应该是我们MATLAB产生TXT,然后经过ipg处理以后又转回来了图。对吧,好做完之后呢,我们来进行一个运行,我们现在把啊这没有图关了是吧。好。前面这个是MATLAB的图,MATLAB自己产生的图,这个图是我们写的图,一样啊啊可以看到基本上是一样的啊,如果你要去对比的话呢,可能确实中间可能有某些数据确实不一样,但是呢,你要这么来看,因为图片呢,到最后呃,大多数是还是以视觉效果来看的,是吧,所以基本上是类似的对吧,所以可以看到什么呢?可以看到对你来说。
20:02
这就是一套非常完整的流程,所以希望大家干什么呢?希望大家今天下午的话呢。把我所讲的整个这一套,第一对图像的理解。啊,第二个干什么呢?就是我们在MATLAB里边又对整个图片做了一个非常形象的数字化的这样的理解,然后第三个的话呢,我们在里边讲了一些比较简单的东西,比如说就句红色、绿色、蓝色,然后以及又做了变灰度,以及又做了一个什么反显,还做了个二值化,大家这东西要去理解一下,产生这样一个感性的认识,然后第三个我们就讲了,说那这些函数我们在里边可以用,但是到V当中就不能用了,因为我也不知道他这个函数里边到底干了啥,所以我们就研究了第一个东西叫什么叫色彩转换,其实就是RGB转灰度,那么我们利用RGB转灰度呢,利用B当中它自己所产生的一些东西,也就是说我们知道什么,我们知道了,它这里边呢,怎么计算的,原来是一堆小数一乘。
21:04
然后呢,我们就干什么呢?让我们做了一件事,啥事呢?就是MATLAB里边走了一遭产生的结果,那我们ipt怎么来做呢?所以就是MATLAB产生天然气,Vlo读天然气,然后经过加工变换产生了结果,然后把结果再写回天然气,然后从天然气读到MATLAB,然后再转换成图,就是这一套流程。那么大家知道这个以后呢,后边我们就简单了,怎么做呢?就比如说外边有一些噪点啊,比如说我有一张图突然有很多噪点,我用MATLAB是不是可以滤波呀,MATLAB滤波完了。那我用IP Di滤波做对不对呢?是不是也可以把用到底的图片给到IP dipd滤完波之后再反过来看看滤波的效果怎么样啊,因为毕竟一个是人家做的,一个是咱们自己写的啊,对不对,看看怎么样,所以这就是一套流程,其道流程你要知道,那么还有最后一个就是什么,就是我们讲了一下什么,讲了一下在我们的。
22:00
这个叫做这个这个这个这个这个这个当中如何来去表示。小数,而这一次用的什么方式呢?用的叫做定点数来进行表示这个小数对吧?说白了定点数定的是啥呢?就是定的小数点的位置就是在人心里的这个位置对吧?哎,在人心里这个位置啊,所以希望大家的话呢,把这个好好去练习练习,熟悉熟悉啊,把这一套流程走通了,那么如果你把这一套流程走通了,那么剩下的一套啊,我们在讲什么时候还要用到这个呢?我们后边可以给大家讲信号,比如说我们讲绿波。注意啊,注不是图像的,是我们在讲这个那个叫做这个这个这个这个这个呃,数字信号处理的时候滤波,比如说我们用麦B产生一个噪声,然后再用malab再产生一个声音,比如比如说我现在把我说话的声音录下来,然后放到mab malab里边,其实就是什么,其实就是一个。声波,然后我再给它加上加上噪音,然后加上噪音之后,我把这个噪音加我声音的东西,然后写到里,然后器里读到lo里边,在里边写一个滤波器,然后写完之后再滤波,滤波出来之后呢,我得把这个东西。
23:15
弄天气,天气在读到B里边,然后B在干什么呢。再把我的声音再还原出来。就是那个噪声就没了。啊,其实说白了就是整个这一套的一个验证的流程,希望大家知道啊,大家知道比如说很简单啊,你比如像这个梁德辉,他做这个什么,做了一个数字识别,那其实我给了你一张图是吧,那这张图到最后你是不是要通过,通过谁呀,你是不是要通过ipd做很多事对吧,那其实你每做一步事,其实都应该都可以把这个图像返回到。MATLAB里面看一看你这一步走的对不对。因为都可以看一下集,都可以看下中间过程,比如说我不用可以中间过程吗?看不到,为什么?因为看到中间过程都是什么纯数字,你不是图片类型的,你能看清楚吗?或者你能知道它是怎么回事吗?
24:10
其实你根本就不知道对吧,你是无从得知的。啊,你是无从得知的,所以对我们来怎么做呢?对我们来说最简单的就是无限的往回返返返里边去做验证,这样的话就验证什么,就验证了你IP做的是正确的啊,都是正确的好了啊呃,以上的所有内容呢,就是咱们今天呢讲的这个关于图像的第一部分内容啊,希望大家一定要熟悉,那么明天我们讲什么呢?明天我们开始去讲解另外的东西啊,就是叫做ipga的啊,Ipga在图像方向上的均值滤波和高斯滤波。啊,均值滤波和高斯滤波啊,后天我们讲中值滤波。啊,再往后边我们讲这个关于它的腐蚀和膨胀,以及我们的变缘检测啊,这是我们大概的这呃四天的一个小的规划啊,好了,就讲到这吧吧。
我来说两句