我想在一个从Parrot Ar Drone获得的视频帧中编写一个用于检测对象的Android应用程序。当模型包含无人机状态(如果正在飞行,新的视频框架,导航数据等)时,我选择使用MVC模式来实现此目的。
为了检测一个物体(一个特定的球),我决定在物体的色调值上过滤图像以进行检测,然后通过OpenCV应用Huogh Circle变换。 为了获得应用色调滤镜的颜色,我会创建一个校准活动,计算无人机相机前方物体的直方图,当按下按钮时,此直方图在模型中设置并且是新的活动(因此,可视化检测到的对象的新视图。我们将其称为检测视图)。
我必须在哪里计算直方图?在视图中,当新的视频帧从无人机到达时,从模型或模型中获取视频框架?
我必须在哪里运行检测算法?在检测视图中还是在模型中?
答案 0 :(得分:0)
通常,您可以将您的活动称为MVC中的“控制”图层。 您希望将活动(和片段)中的逻辑保持在最低限度,因为虽然活动和片段作为一个整体可重复使用,但它内部的部分逻辑却不是。
计算,例如检测图像或视频中的对象,我不会放在Model对象中,因为它应该更像是POJO,只是保留数据。 我个人会为此创建一些Util类,它将在Model层中表现为类。
重新计算自定义可视化,听起来更像是自定义视图。 此视图可以具有逻辑,但只有用于呈现自身的逻辑。所有数据都应该提供给它,而不是提取。真正的逻辑应该只是View绘图本身。