我目前正在编写一个包含大型数组的程序,我对不同数组的处理时间感到非常困惑.一方面,我有7个"较小"的数组(<= 65536个元素),另一方面,我有7个大数组(65536 <elements <= 67108864).两者都是整数数组.我只想在循环中增加各种元素.每个循环我都会在每个数组的相同索引处增加元素.这意味着每个循环我想在同一索引处增加所有14个数组.这需要21秒.如果我只增加7个较小的数组,它只需要2秒,如果我只增加7个较大的数组,则需要18秒!为了更好的说明,我编写了一个示例代码:
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc,char* argv[])
{
int i;
int* ExampleArray1 = new int [16384]; // 3 "small" arrays (2^14)
int* ExampleArray2 = new int [32768]; // (2^15)
int* ExampleArray3 = new int [65536]; // (2^16)
for(i=0 ; i<16384 ; i++) {ExampleArray1[i] = 0;}
for(i=0 ; i<32768 ; i++) {ExampleArray2[i] = 0;}
for(i=0 ; i<65536 ; i++) {ExampleArray3[i] = 0;}
int* ExampleArray4 = new int [16777216]; // 3 large …Run Code Online (Sandbox Code Playgroud) 我试图在过滤后的图像中检测到一个球.在这张图片中,我已经删除了不能成为对象一部分的东西.当然我尝试了HoughCircle函数,但是没有得到预期的输出.要么没有找到球,要么检测到太多圈子.问题是球不是完整的圆形.
截图:

我认为它可以工作,如果我识别单个物体,计算它们的中心并检查半径是否在不同方向上大致相同.但是,如果它还没有被完全看见,那么它也会很好.用这种方法我无法检测到半圆形或类似的东西.
编辑:这些图像来自视频流(实时).
我可以尝试其他什么方法?
