小编Mat*_*teo的帖子

OpenCV关闭窗口与鼠标问题

OpenCV 2.2版,C++接口.

在带有以下代码段的窗口中显示加载的图像时

cvStartWindowThread();

Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR);   // Read the file

if(! image.data )                              // Check for invalid input
{
    cout <<  "Could not open or find the image" << std::endl ;
    return -1;
}

namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", image );   

while( 1 ) {
    if( cvWaitKey(100) == 27 ) break;
}
Run Code Online (Sandbox Code Playgroud)

通过close button用鼠标按下而不是使用转义键来关闭图像时遇到问题.

在这种情况下,我的程序将被阻止,while退出它的唯一方法是停止执行,这显然是不希望的.

是否有任何功能可以控制是否close button按下了?这样我就可以在while循环中添加它:

例如

while( 1 ) { …
Run Code Online (Sandbox Code Playgroud)

opencv window mouseevent

3
推荐指数
1
解决办法
8060
查看次数

如何区分C++中的模板类型

我有一个模板类,并且想编写一个能够识别模板已被实例化的类型的成员方法.

我需要创建一个字符串标识符,其中包含有关该类型的以下信息:

  • 位深度
  • 签名或未签名
  • 浮点或int或char

该方法应返回以下列方式组成的字符串:

string:(BIT_DEPTH) - (U | S) - (C | I | F)

BIT_DEPTH - >是用于表示类型的位数

U | S - >描述类型是有符号还是无符号

C | 我| F - >描述type是char int还是浮点

我想到了一种找到深度的方法:

int bitDepth = sizeof(TemplateType) * 8;
Run Code Online (Sandbox Code Playgroud)

好吗?

但是不知道如何找到我需要的其他信息,除非switch-case下面的声明是可以的(但不要这么认为):

THE FOLLOWING IS PSEUDO CODE THAT YOU SHOULD HELP ME EXPRESS IN A CORRECT SYNTAX

switch(TemplateType){

    case signed: ...;
    case unsigned: ...;

    default: ...;

}
Run Code Online (Sandbox Code Playgroud)

我的问题是两个:

  • 位深度计算是否正确?
  • 这个switch-case陈述是个好主意吗?(如果是,请你更正语法)

c++ templates types

2
推荐指数
1
解决办法
403
查看次数

使用另一个类的枚举类型

我已经阅读了以下链接中的所有建议

  1. c ++ typedef另一个类的枚举?
  2. http://forums.devarticles.com/cc-help-52/how-to-use-enum-when-it-is-in-another-class-17773.html
  3. http://forums.codeguru.com/showthread.php?t=435215
  4. 如何在代码的另一部分中使用类中的Enum值?

但仍然无法找到我的问题的解决方案:

我需要构建一个对象class A(其构造函数期望作为输入参数,该类的枚举类型)来自对象的一个​​函数内部.class B

以下是代码段:

文件啊:

Class A{
    public:
       enum FileType{TEXT, BIN};

       /*! This constructor initializes the data from a given file
        *  (binary, text, image). 
        */
       A(const std::string& filename, FileType type);

}
Run Code Online (Sandbox Code Playgroud)

文件A.cpp:

A::A(const std::string& filename, FileType type){
 ...
}
Run Code Online (Sandbox Code Playgroud)

文件Bh:

Class B{

    private:
       A objectOfClassA;

    public:
       enum FileType{TEXT = A::FileType::TEXT, BIN = A::FileType::BIN}; //<----THIS IS NOT WORKING!           
       foo_func(const std::string& filename, FileType type);

}
Run Code Online (Sandbox Code Playgroud)

文件B.cpp:

void B::foo_func(const std::string& filename, …
Run Code Online (Sandbox Code Playgroud)

c++ enums class

2
推荐指数
1
解决办法
6631
查看次数

OpenCV上的简单SIFT检测器问题

我正在实现这个简单的例子只是为了熟悉OpenCv和SIFT.

1  #include <opencv2/core/core.hpp>
2  #include <opencv2/features2d/features2d.hpp>
3  #include <opencv2/highgui/highgui.hpp>
4
5  using namespace std;
6 
7  int main(int argc, char** argv) {
8
9     const cv::Mat input = cv::imread("/tmp/image.jpg", 0); //Load as grayscale
10
11    cv::SiftFeatureDetector detector;
12    std::vector<cv::KeyPoint> keypoints;
13    detector.detect(input, keypoints);
14
15    // Add results to image and save.
16    cv::Mat output;
17    cv::drawKeypoints(input, keypoints, output);
18    cv::imwrite("/tmp/SIFT_RESULT.jpg", output);
19
20    return 0;
21
22 }
Run Code Online (Sandbox Code Playgroud)

我期待它非常简单,但它会引发以下错误:

  • undefined reference to 'cv::SIFT::CommonParams::CommonParams()' 在第11行
  • undefined reference to 'cv::FeatureDetector::detect(cv::Mat …

c++ opencv sift

2
推荐指数
1
解决办法
8251
查看次数

并排显示图像和文本 HTML

我正在尝试在网页上显示彼此相邻浮动的图像和一些文本,如下所示。

在此输入图像描述

我基本上已经尝试了在这个主题上发现的前两个SO问题中建议的所有方法:

然而,无论我尝试什么组合,这都是我获得的结果:

在此输入图像描述

这是HTML第一个示例的代码(似乎根本不起作用):

<div class="cf">
    <img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Balzac.jpg/220px-Balzac.jpg" width=100>
    <div>some text here</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是HTML第二个示例的代码,其不同之处在于文本未包装到容器中<div>(但似乎仅适用于有限数量的文本):

<div class="cf">
    <img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Balzac.jpg/220px-Balzac.jpg" width=300>
    some text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text heresome text …
Run Code Online (Sandbox Code Playgroud)

html css css-float

2
推荐指数
1
解决办法
3万
查看次数

自动调整 IPython 小部件布局

我创建一个交互式的jupyter notebook使用ipython widgets,并希望用户从一定数量的复选框选择。我正在使用下面的代码来可视化HBox包含复选框的内容。

num_checks = 10

cb_cont = widgets.HBox(background_color='red',height='100px',width='100%')

checkboxes = []
for f in range(num_checks):
    checkboxes.append(\
        widgets.Checkbox(description = 'Checkbox [%d]'%(f), \
                         value=False, width=50))

cb_cont.children=[i for i in checkboxes]
display(cb_cont)
Run Code Online (Sandbox Code Playgroud)

以下是上述代码输出的屏幕截图:

在此处输入图片说明

如您所见,框的内容溢出并超出了容器的宽度。

我可以通过设置更改行为overflow_x属性为下列情况之一:['visible', 'hidden', 'scroll', 'auto', 'initial', 'inherit', '']

例如,cb_cont.overflow_x = 'scroll'导致以下输出窗口:

在此处输入图片说明

其中内容不会溢出但变得不可见并且可以滚动。

如何设置框的属性以可视化不适合换行符的内容?

显然,我可以使用多个HBox对象,每个对象都包含适合窗口大小的最大复选框数,但是由于一系列原因,这不是想要的解决方案:

  1. 根据屏幕分辨率,该数字可能会发生变化。
  2. 要选择的复选框数量取决于先前的计算,并且事先不知道。

python ipython jupyter jupyter-notebook ipywidgets

2
推荐指数
1
解决办法
6806
查看次数

根据多个条件对python列表进行排序

我有一个列表,其元素是带有值和类型字段的字典,即:

my_list = [{'val':5, 'type':0},{'val':6, 'type':2},{'val':2, 'type':1},{'val':9, 'type':0}]
Run Code Online (Sandbox Code Playgroud)

我想基于该type字段以降序对列表进行排序,并基于该字段在每种类型中对列表进行排序value,并获得一个具有相应排序索引和排序矢量的矢量。

我知道如何使用lambda函数针对单个条件执行此操作,即:

sorted_list = sorted(my_list, key=lambda k: k['type'], reverse=True) 
Run Code Online (Sandbox Code Playgroud)

但是如何将其扩展到多个条件?

所需输出

 sorted_list = [{'val':6, 'type':2},{'val':2, 'type':1},{'val':9, 'type':0},{'val':5, 'type':0}]

 sorted_idxs = [1, 2, 3, 0]`, such that `[my_list[k] for k in sorted_idxs]==sorted_list
Run Code Online (Sandbox Code Playgroud)

python sorting lambda

2
推荐指数
1
解决办法
2329
查看次数

计算机视觉图书馆

我正在开始一个计算机视觉项目,需要在我想要开发的"Vision Agent"和它应该用作输入的图像和视频之间建立一个接口.

我正在使用C++,这个接口应该公开一些低级 输入/输出操作的方法:

  • 加载图像(在内存中)
  • 加载图像池(保存在目录中)
  • 访问加载的图像中的单个像素
  • 将视频加载为图像池(想要确定每帧之间的时间间隔)
  • 将视频的单帧加载为图像

我是Computer Vision的新手,需要找到一个有效的库来帮助我实现这个界面.

通过在网上浏览,我找到了一些这类项目最常用的库,例如:

  • OpenCV的
  • VXL
  • IVT

我想知道的是:

你们中的任何人都曾与其中任何一个合作过吗?

你认为他们适合我的任务吗?如果是,您认为哪一个更好(更有用和更有效).

你有什么其他的建议?

新增问题:

你知道这些库(或其他建议的)产生的许可证类型是什么?

opencv image-processing computer-vision

1
推荐指数
1
解决办法
785
查看次数

使用bash脚本解析`ls -l`的结果

我需要使用bash脚本存储目录中包含的每个文件的名称,并以某种方式处理它:

drwxrwxr-x  5 matteorr matteorr  4096 Jan 10 17:37 Cluster
drwxr-xr-x  2 matteorr matteorr  4096 Jan 19 10:43 Desktop
drwxrwxr-x  9 matteorr matteorr  4096 Jan 20 10:01 Developer
drwxr-xr-x 11 matteorr matteorr  4096 Dec 20 13:55 Documents
drwxr-xr-x  2 matteorr matteorr 12288 Jan 20 13:44 Downloads
drwx------ 11 matteorr matteorr  4096 Jan 20 14:01 Dropbox
drwxr-xr-x  2 matteorr matteorr  4096 Oct 18 18:43 Music
drwxr-xr-x  2 matteorr matteorr  4096 Jan 19 22:12 Pictures
drwxr-xr-x  2 matteorr matteorr  4096 Oct 18 …
Run Code Online (Sandbox Code Playgroud)

linux bash shell awk

1
推荐指数
1
解决办法
8472
查看次数

for循环中列表修改的python行为

为什么以下两个for循环的行为list不同?

在第一个例子我有一个listint:修改在每个元件for环和打印结果.但是,值的变化仅在循环范围内.

In [1]: my_list = [1,2,3,4,5,6,7,8,9,10]
In [2]: for e in my_list:
   ...:     e = e*2
   ...:     print e
   ...:     
Out [2]: 2
         4
         6
         8
         10
         12
         14
         16
         18
         20

In [3]: my_list
Out[3]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

在第二个例子我有一个listlist:修改在每个元件for环和打印结果.但是,在这种情况下,值的更改将传递到循环范围之外.

In [4]: my_list = [[1,2],[3,4],[5,6],[7,8],[9,10]]
In [5]: for e in my_list:
   ...:     e[0] = e[0] …
Run Code Online (Sandbox Code Playgroud)

python int for-loop list

1
推荐指数
1
解决办法
69
查看次数