OpenCV 函数在 Python 和 C++ 中不起作用

Posted

技术标签:

【中文标题】OpenCV 函数在 Python 和 C++ 中不起作用【英文标题】:OpenCV function does not work same Python and C++ 【发布时间】:2020-07-13 09:36:48 【问题描述】:

这是python代码:

vs = cv2.VideoCapture(0)
while True:
    ret,frame = vs.read()
    blob = cv2.dnn.blobFromImage(frame, 1.0,(300, 300), (104.0, 177.0, 123.0))
    print(blob.shape[2]) # print channel

当我在 c++ 中尝试相同的代码时,通道值与 python 代码不同

cv::VideoCapture cap;
cap.open(0);
cv::Mat frame;

while(true)

    cap.read(frame);

    Mat blob = cv::dnn::blobFromImage(frame,1.0,cv::Size(300,300),Scalar(104.0, 177.0, 123.0));
    cout << blob.channels() << endl; // print channel here

它们有什么区别?

【问题讨论】:

【参考方案1】:
print(blob.shape[2]) # print channel

您确定索引 2 应该包含频道数吗? 在常见的 4 维顺序 NCHW 和 NHWC 中,形状的索引 2 不对应于通道。

【讨论】:

以上是关于OpenCV 函数在 Python 和 C++ 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将openCV python函数转换为C++

如何在python中使用openCV的连接组件和统计信息?

opencv想到的

在 C++ 和 OpenCV 中调用其他文件中的函数

使用 Redis 在 C++ 和 python 之间共享 Opencv 图像

OpenCV C++ 使用高斯核函数计算晕影效果