羽翮已就之图像处理之matlab优化for循环

小y最近一直在出差,由于一直在外也没设备,也没有时间看现控的内容,一直想写观测器的博客也只能暂时搁置。
**但是生命不息,学习不止。**小y每次使用matlab需要for循环某个矩阵就会弹出变量似乎要更改脚本中每个循环迭代的大小,还会提示对速度有影响。
matlab本来就是矩阵实验室,没必要使用for循环处理矩阵,于是y想,有没有好的方法处理矩阵。
首先,做实验1:
羽翮已就之图像处理之matlab优化for循环_第1张图片
它会按顺序打印1~5的整数,如果我们使用1:8它的结果应该是1到8的整数,试验如下:
羽翮已就之图像处理之matlab优化for循环_第2张图片
预测正常那么我们可以理解:的作用就是相当于数学的在这里插入图片描述
如果我们中间在来组:那结果会怎么样呢?没有实践就没有发言权,试验如下:
羽翮已就之图像处理之matlab优化for循环_第3张图片
打印结果是1、3、5、7,有点像公差为2的等差数列,用高中的知识就是

在这里插入图片描述
应该没错吧,自己也推了一遍,高中知识快忘完啦。
那么如果1:3:8的话及公差为3的等差数列。获得的答案应是1、4、7试验如下

羽翮已就之图像处理之matlab优化for循环_第4张图片
结果与猜测相符。
假设我有个图片长成
羽翮已就之图像处理之matlab优化for循环_第5张图片

我想获得它第一个像素点及1,那么我该怎么办呢?使用A(1)会得出第一个像素点吗?
试验是检验真理的唯一标准。
羽翮已就之图像处理之matlab优化for循环_第6张图片
是对的进行验证,如果我想获得第一行第二列这个像素点2会是A(2)吗?进行试验:
羽翮已就之图像处理之matlab优化for循环_第7张图片
发现他是第二行第一列的的像素点,假设下如果是A(3)的话我们会得到第三行第一列的的像素点及7。进行试验如下:
羽翮已就之图像处理之matlab优化for循环_第8张图片
此时y有个大胆的想法,如果A(2,2)答案会不会是第一行第二列的值及5,进行试验。
羽翮已就之图像处理之matlab优化for循环_第9张图片
预测成功,那A(3,3)及是9了,验证结果如下
羽翮已就之图像处理之matlab优化for循环_第10张图片
接下来我们来认识size函数,这个函数会获得矩阵的行列,试验1如下
羽翮已就之图像处理之matlab优化for循环_第11张图片

试验2验证
羽翮已就之图像处理之matlab优化for循环_第12张图片
试验3
羽翮已就之图像处理之matlab优化for循环_第13张图片
那么我们尝试做如下试验,如果C(1)是不是矩阵的行呢及X,试验结果如下:
羽翮已就之图像处理之matlab优化for循环_第14张图片
合适!于是大胆猜测C(2)=Y=4试验结果如下
羽翮已就之图像处理之matlab优化for循环_第15张图片

成立!
那么从返回值观察size返回了3和4,3是第一列4是第二列,那C(1)=3,C(2)=4。
接下来小y在想,如果将一个图片降采样的话,会不会使用矩阵算法比使用双重for-end会快。
首先我们尝试将矩阵自动打印。从我们上面的试验不难猜出
羽翮已就之图像处理之matlab优化for循环_第16张图片
得出正确打印,如果隔行隔列一打印呢?
羽翮已就之图像处理之matlab优化for循环_第17张图片
好了我们成功的使用矩阵隔行隔列一打印。那么我们接下来看重点,处理图片速度会不会差距很大?
首先使用for循环。

羽翮已就之图像处理之matlab优化for循环_第18张图片
运行了两次都在1.3s左右。
接下来使用矩阵处理
羽翮已就之图像处理之matlab优化for循环_第19张图片
运行完以后y沉默了。感觉结果不对差距也太小了,我在拿个大图试试。

这个图大,我们测试后在2.7-5秒之间

这个运行时间在2.6-4.2秒之间。
算下效率呗。如果标准是1秒处理完毕的话,那for循环的车牌处理效率是74%
羽翮已就之图像处理之matlab优化for循环_第20张图片
矩阵的处理速度是87%
羽翮已就之图像处理之matlab优化for循环_第21张图片
这么看矩阵的效率是比for循环高。
那么大图的处理效率再看下,首先还是观察for循环的效率是34%。
羽翮已就之图像处理之matlab优化for循环_第22张图片
矩阵的效率是38%
羽翮已就之图像处理之matlab优化for循环_第23张图片
怎么说呢半斤八两吧,如果非要找个好的方法,那矩阵确实好点,也就是矬子里面拔将军。

有人看到我在用车牌做图像处理,那么接下来在闲暇时间我打算完成matlab图像识别的教程,代码都是这样逐行解释的。

你可能感兴趣的:(matlab,图像分割技术,matlab,图像处理,矩阵)