Python数组管理C++等效程序
Python array management C++ equivalent
我知道SO不是租用编码器,但我有一个非常简单的python示例,我需要帮助将其翻译成C++
grey_image_as_array = numpy.asarray( cv.GetMat( grey_image ) )
non_black_coords_array = numpy.where( grey_image_as_array > 3 )
# Convert from numpy.where()'s two separate lists to one list of (x, y) tuples:
non_black_coords_array = zip( non_black_coords_array[1], non_black_coords_array[0] )
我想,第一个相当简单——创建了一个线性可索引数组,其中包含从cv.GetMat
中检索的字节,对吧?
什么等价于pyton的where
,尤其是这个zip
函数?
我不知道OpenCV,所以我不能告诉你cv.GetMat()
的作用。显然,它返回一些可以用作或转换为二维数组的东西。您正在使用的OpenCV的C或C++接口可能具有类似的名称函数。
以下几行创建了grey_image_as_array
中大于3
的条目的索引对数组。CCD_ 7中的每个条目是CCD_ 8中基于零的x-y坐标。给定这样的坐标对x
、y
,您可以使用grey_image_as_array[y][x]
访问二维C++数组grey_image_as_array
中的相应条目。
Python代码必须避免在图像上进行显式循环才能获得良好的性能,因此它需要使用NumPy提供的矢量化函数。表达式CCD_ 13是矢量化比较,并且产生与CCD_ 14相同形状的布尔数组。接下来,numpy.where()
提取该布尔数组中True
条目的索引,但结果不是上述格式,因此我们需要zip()
对其进行重构
在C++中,不需要避免显式循环,等效的numpy.where()
将毫无意义——只需编写循环并以您选择的格式存储结果。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 如何通过cpp程序运行shell脚本
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- IPC使用多个管道和分支进程来运行Python程序
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 基于boost的程序的静态链接——zlib问题
- 程序崩溃并显示"std::out_of_range"错误
- 在C应用程序中运行C++(带有STL)函数
- 使用mongocxx驱动程序时包含头文件问题
- 如何在c++程序中找到函数的地址