使用Open CV迭代器进行分段故障
Using Open CV Iterators segfault
我想做一些像特征脸但不同的图像(不是脸)。我有一个图像向量,images
。从这些图像中,我想做一个Mat
对象,data
,在每一行中,包含一个图像,写成一个行向量。这是我尝试做的:
// This is basically a matrix that needs to have a bunch of images as rows.
Mat data(numImages, IMAGE_SIZE * IMAGE_SIZE, CV_8UC1);
// I also replaced CV_8U by images[0].type() and CV_8U. no change
MatIterator_<unsigned short> iter = data.begin<unsigned short> (),
iter_end = data.end<unsigned short> (),
iter2;
for (i = 0; i < numImages; ++i)
{
MatIterator_<unsigned short> begin = images[i].begin<unsigned short> ();
MatIterator_<unsigned short> end = images[i].end<unsigned short> ();
for (iter2 = begin; iter2 != end; iter2++)
{
*iter = *iter2; // Segfault is here.
if (iter != iter_end) // safety check
iter++;
else
perror("Screwed!n"); // This does not execute!
}
}
帮助!
谢谢!
我认为在你的矩阵中每个字段都有1个字节(CV_8UC1),但你的迭代器是"无符号短"迭代器。无符号短通常有2个字节。改为
data.begin<unsigned char> ()
也检查stint .h: http://en.wikipedia.org/wiki/Stdint.h
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数
- C++分段故障BST