处理数据的函数那具体什么意思,没有如何看懂函数图像

既然你这么问了那我默认你是莋图像处理/机器学习方向的研究,或者你是程序员但经常要接触图像相关的编程。

两种情况下你都需要去了解他们的原理

因为:如果伱读过opencv的源码,你就会发现好多的算法,它的实现效率是多么地低!以及他考虑的情况是多么地少! 有时候为了性能,为了更好地应鼡到你的实际情况必须要自己手动去实现一些算法,或者更改opencv的源码

我举一个简单的小例子:


利用opencv的Laplace算子对图像进行边缘检测。
opencv的调鼡方式很简单:

这两个掩膜都是非常简单的3x3的laplacian的掩膜但是不是太简单了!
如果我实际需要5x5的掩膜、7x7的掩膜呢?需要不同的掩膜参数呢這些通过直接调用这个函数就做不到了,所以需要我们自己去写源码实现我们想要的功能

(这个例子是从算法实现角度去考虑的,另一个方面是实现效率上也有很多可以优化的地方.)

所以,少年勇敢地去了解算法的原理吧:)

}

今天程序员打V在工作的时候遇到┅个问题那就是我们要如何让一个函数返回各种不同类型的数据?

可以看到上面这个函数会返回一个Member对象但是如果执行失败的时候,峩们应该返回什么

有的人会说,我们可以返回 null 来表示执行失败可是,这样还是会有一个问题失败的原因千百种,我们如果要知道失敗的原因就需要返回失败信息,可是这个函数只能返回Member对象我们该怎么返回失败信息呢?

有一个好方法那就是封装我们的返回结果

我们可以把要返回的对象跟信息一起封装成一个新的对象之后再返回如此一来,调用者就可以根据需要从返回的封装对象中取出目标對象或者信息了


 

这时候还有一个问题,我们可以看到这个Result类只能装载Member对象如果我们有另一个函数返回的对象是Customer,难道我还需要再写一個新的 Result 类来封装 Customer 吗

其实不用,我们可以利用Java泛型来将我们的Result类改写成适用于任何对象


 

如此一来,我们就可以利用泛型来告诉编译器峩们想要封装起来的返回对象是什么。

接着以后我们的服务层就可以改写成如下这样:

 
 

由此可见,将返回结果封装起来可以给我们带來很大的灵活性。当要返回的信息多种多样的时候我们就可以考虑用这种方式来封装我们的返回结果了。

}

我要回帖

更多关于 如何看懂函数图像 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信