Opencv中不支持的深度
Unsupported depth in Opencv
我正在尝试学习一些基础知识,但我总是出错。
我正在尝试调整cv::Mat
编辑以澄清为什么我没有加载图像:我正在尝试在没有访问外部文件的情况下进行测试。
在代码中,我放了int x = M.depth();
,它的读数是0
cv::Mat M(2,2, CV_8UC3, cv::Scalar(0,0,255));
scale = 2;
cv::Size myImageSize;
myImageSize.height = M.rows;
myImageSize.width = M.cols;
cv::Mat ImgCopy = cvCreateImage(myImageSize, M.depth(), M.channels());
..
cv::resize(M, ImgCopy, myImageSize, 0, 0, CV_INTER_LINEAR);
我得到一个错误的行cvCreateImage
Input image depth is not supported by function (Unsupported format) in unknown functio, file... modulescoresrcarray.cpp...
我已经尝试过其他值(CV_32F…),我得到同样的错误。
cvCreateImage()
用于C API并返回IplImage*
。要初始化cv::Mat
,请使用适当的构造函数。
cv::Mat ImgCopy(M.size(), M.type());
是为新的cv::Mat
创建和分配内存的最简洁的方法。
然而,cv::resize()
使它更容易。你只需要声明image
cv::Mat ImgCopy
和cv::resize()
的参数允许自动计算正确的尺寸和类型。最后三个参数不需要指定,因为您不需要从默认值更改它们。
cv::resize(M, ImgCopy, myImageSize);
试试下面的代码:
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
IplImage *src,*dst;
src=cvLoadImage("img.png");
cvNamedWindow("SRC", CV_WINDOW_AUTOSIZE);
cvNamedWindow("DST", CV_WINDOW_AUTOSIZE);
dst = cvCreateImage(cvSize(500,500),src->depth,src->nChannels);
cvResize(src,dst);
cvShowImage("SRC",src);
cvShowImage("DST",dst);
cvWaitKey(0);
cvDestroyWindow("SRC");
cvDestroyWindow("DST");
cvReleaseImage(&dst);
cvReleaseImage(&src);
return 0;
}
相关文章:
- 为什么istream不支持右值提取
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- Casablanca/cpprestsdk listener.support接受函数,但不支持方法
- 为什么C++不支持对未初始化变量进行智能分析?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 为什么联机C++ IDE 不支持"graphics.h"头文件?
- Clang编译器不支持aarch64-apple-darwin上的-fxray-instrument
- 为什么我的 clang 格式不支持 PPDirectiveIndentStyle 选项?
- 为什么某些 STL 容器(堆栈、队列、优先级队列)不支持迭代器?
- 为什么不支持 Xcode 1.5?
- C++20 从括号中的值列表初始化聚合,不支持内部数组
- 为什么结构化绑定不支持可变数组?
- 您选择的 CPU 不支持 x86-64 指令集
- 将数据发送到多个客户端 UDP 时不支持地址族
- 缺少类型说明符 - 假定为 int.注意 c++ 不支持 default-int
- 瓦尔格林德"不支持arch_prctl选项"
- 错误:C4430:缺少类型说明符-假定为int.注意:C++不支持default-int
- 不支持 GLSL 330 内核
- Opencv中不支持的深度