gpt4 book ai didi

c++ - 如何索引和修改 OpenCV 矩阵

转载 作者:太空狗 更新时间:2023-10-29 20:42:34 26 4
gpt4 key购买 nike

如果我有一个 OpenCV cv::Mat,并且有一列整数:

[1;2;3;1;2;3;1;2;3]

如何按值(即 1)选择一系列索引,将这些索引设置为不同的值(即 0),并保持其余值不变?

如果这是 MATLAB,我可以很容易地做到:

A = [1;2;3;1;2;3;1;2;3];
A(A==1) = 0;

导致:

[0;2;3;0;2;3;0;2;3]

最佳答案

它在 OpenCV 中不像在 MATLAB 中那样简洁,但也很接近。 setTo()功能是你想要的。这利用了 cv::Mat 上的一些逻辑操作,如 ==!= 产生可以传递的掩码这一事实其他功能:

uchar data[] = {1, 2, 3, 1, 2, 3, 1, 2, 3};
cv::Mat A(9, 1, CV_8UC1, data);
A.setTo(0, A == 1);

这将给出预期的结果:

[0; 2; 3; 0; 2; 3; 0; 2; 3]

关于c++ - 如何索引和修改 OpenCV 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18233691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com