Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过模板匹配在图像上查找过往列车,无需列车模板_Python_Opencv_Computer Vision - Fatal编程技术网

Python 通过模板匹配在图像上查找过往列车,无需列车模板

Python 通过模板匹配在图像上查找过往列车,无需列车模板,python,opencv,computer-vision,Python,Opencv,Computer Vision,我每X秒拍一张交叉口的照片,然后使用opencv2中的模板匹配分析交叉口的状态,是真是假。如果状态为True,那么我将启动一个会话,在该点上我希望检测是否有列车在任何点通过。问题是,我没有一个可以通过的每列火车的模板(4个不同的客运列车公司+货运列车公司),因此没有模板来匹配我的图像I。我也没有足够的数据或时间训练网络来识别任何列车 我使用opencv2,特别是TM_CCOEFF算法进行交叉点的状态匹配,效果很好。如果没有每列火车作为样本,甚至可能没有区分乘客和货物,我怎么能检测到任何经过的火车

我每X秒拍一张交叉口的照片,然后使用opencv2中的模板匹配分析交叉口的状态,是真是假。如果状态为True,那么我将启动一个会话,在该点上我希望检测是否有列车在任何点通过。问题是,我没有一个可以通过的每列火车的模板(4个不同的客运列车公司+货运列车公司),因此没有模板来匹配我的图像
I
。我也没有足够的数据或时间训练网络来识别任何列车

我使用opencv2,特别是
TM_CCOEFF
算法进行交叉点的状态匹配,效果很好。如果没有每列火车作为样本,甚至可能没有区分乘客和货物,我怎么能检测到任何经过的火车呢

下面是我正在拍摄的一张示例照片(我没有一张上面有火车的照片):

您可以检查是否有关闭的门来启动会话。然后用背景减法确定火车经过我已经在做第一部分了。通过背景减法,我会将一个空的十字路口(如上所述)的图像与一个包含火车的十字路口进行比较吗?甚至可能区分乘客和货物-你会如何向一个从未见过火车的人解释这种差异?让一台计算机(或一个人)来区分它没有模型的东西是不可能的。@peterxz确实,把大门里面的区域遮住。然后将每个帧与会话开始时的帧进行比较。还有一个函数可以为您执行此操作,如。山姆·梅森(Sam Mason)建议的远门遮挡也可以起作用,而且效率更高。寻找其他功能可能更容易。e、 g.屏障大概会落在大致相同的位置,并且与背景的对比度差异很大。您还可以查看远处障碍物的遮挡情况,作为过往列车的代理。一旦你有了一些实际列车的图像,你就可以开始开发更好的分类器了