【发布时间】:2014-03-02 19:25:24
【问题描述】:
我有一个场景,我必须在 for 循环中显示图像数量。请看代码。
我想分别分析所有检测到的霍夫线。所以我试图提取图像中检测到的每条线。 所以我会得到与检测到的行数一样多的图像。
for ( int i = 0;i<lines.size();i++)
{
Vec4i draw = lines[i];
line(vMat[i],Point(draw[0],draw[1]),Point(draw[2],draw[3]),Scalar(0,0,255),1,CV_AA);
imshow("Lines",vMat[i]);
}
由于俗称“Lines”,我只得到最后检测到的线条图像。
可以在imshow中添加迭代器信息吗?
我尝试使用字符串数组。但是concatenating 带有字符串的整数(向量的索引)对我来说似乎很困难(添加'boost'库等等)。
我的问题有什么简单的替代方法吗?
谢谢, 卡提克
【问题讨论】:
-
我无法理解您的问题。所以你想在图像中显示文本?
-
所以你的循环多次分配给“Lines”,并且只包含一个? imshow() 究竟做了什么?
-
也许您想在
imshow之后添加cv::waitKey();,以便您有时间实际检查imshow显示的内容。 -
@ChronoTrigger:我想通过将索引号附加到图像窗口来显示更多图像,以便我可以记下典型(所需)行的索引号。这对我来说只在特定的行上工作会很方便。否则,我必须像 "draw = Lines[0]", imshow("Lines[0]") 那样输入并手动输入所有行数。更准确地说是“imshow("Lines"+i,vMat[i])"。但这行不通。我希望我说清楚了。如果没有,请问我,我已经准备好澄清它了。
-
@JonPall,我希望我的循环将迭代器附加到字符串“Lines”。所以我得到了各种图像,如“Lines[0]”、“Lines[1]”、“Lines[2]”等等。我的问题也可以换一种说法。 “我们如何从一个图像矢量中显示多个图像?”我希望我现在说清楚了。还是不行?
标签: c++ opencv image-processing mat imshow