小编Gil*_*evi的帖子

添加手表显示未定义的标识符visual studio 2012,cpp

我遇到了VS 2012中最奇怪的行为(我在用cpp写作).

我在变量上单击"添加监视",并显示"标识符未定义".

这是代码的示例:

for (int j=0;j<32;j++)
        {
            unsigned char curValue=desc1.at<unsigned char>(0,j);
            printf("%s\n",curValue);    
        }
Run Code Online (Sandbox Code Playgroud)

我不得不使用printf来显示curValue的值.大声笑.

有没有人遇到过这种行为?

编辑:发生这种情况更奇怪.调试以下代码时:

    int b1[8];

    for (int k=0;k<7;k++)
        b1[k]=0;

    char q=curValue; 
    int t=0;
    while (q!=0){
        b1[t++]=q%2;
        q=q/2;
    }
Run Code Online (Sandbox Code Playgroud)

调试器只是跳过b1 [k] = 0的循环;

请注意,即使在循环内部,curValue也是未定义的.

谢谢!

c++ watch visual-studio

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

/ MD和/ MDd(使用运行时库)有什么区别?

当我在代码中添加以下行时:

std::string sFrameTag
Run Code Online (Sandbox Code Playgroud)

我收到以下链接器错误:

错误34错误LNK2005:“ public:__thiscall std :: basic_string,class std :: allocator> ::〜basic_string,class std :: allocator>(void)”(?? 1?$ basic_string @ DU?$ char_traits @ D @已在VFPAnalyzerApi.lib(VFPEvaluation.obj)msvcprtd.lib中定义的std @@ V?$ allocator @ D @ 2 @@ std @@ QAE @ XZ)

我在C / C ++->代码生成->运行时库下查看了项目属性,并将其从更改为/MDd/MD 并以某种方式消失了错误。有人可以解释一下我到底做了什么更改,为什么有所作为?

谢谢!!!

c++

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

OpenCV - 培训新的LatentSVMDetector模型

我还没有找到任何方法来使用openCV训练新的潜伏svm探测器模型.我目前正在使用xml文件中给出的现有模型,但我想训练自己的模型.

这样做有什么方法吗?

谢谢,

吉尔.

opencv

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

g++ 无法识别选项 -wl

我正在使用 gcc 版本 4.7.2 开发 Ubuntu 12.10。

\n\n

我正在尝试制作以下 makefile:

\n\n
CC = g++\nCCFLAGS = -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp\nLINKFLAGS = -shared -Wl -fopenmp -lgomp\n\nINPUT = im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp\nTARGET = libcpputil.so\n\n# If we are going to use MKL, we include additional flags\nMKL_FLAGS = -D DECAF_USE_MKL\nMKL_LINK_FLAGS = -lmkl_rt\n\nall: $(INPUT)\n    $(CC) -c $(CCFLAGS) $(INPUT)\n    $(CC) $(LINKFLAGS) -o $(TARGET) *.o\nall_mkl: $(INPUT)\n    $(CC) -c $(CCFLAGS) $(MKL_FLAGS) $(INPUT)\n    $(CC) $(LINKFLAGS) $(MKL_LINK_FLAGS) -o $(TARGET) *.o\nspeedtest_lrn: speedtest_lrn.cpp local_response_normalization.cpp\n    $(CC) $(CCFLAGS) -lgomp -o speedtest_lrn speedtest_lrn.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ ubuntu gcc makefile

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

无法加载内核模块“nvidia.ko”

我正在尝试通过运行 NVIDIA-Linux-x86_64-331.49.run 在 Ubuntu 13.10 上安装 Nvidia 驱动程序。

我在 /etc/modprobe.d/blacklist-file-drivers.conf 下创建了一个黑名单文件并将 nouveau 添加到列表中。

另外,我在杀死我的显示管理器(sudo service lightdm stop)后运行了安装。我正在使用 gcc 4.8。

我收到以下错误(来自安装日志文件):

错误:无法加载内核模块“nvidia.ko”。当此内核模块是针对错误或配置不正确的内核源构建的,使用的 gcc 版本与用于构建目标内核的版本不同,或者存在 rivafb、nvidiafb 或 nouveau 等驱动程序时,这种情况最常发生并阻止 NVIDIA 内核模块获得 NVIDIA 图形设备的所有权,或者此 NVIDIA Linux 图形驱动程序版本不支持此系统中安装的 NVIDIA GPU。

有人可以解释一下问题是什么,我该如何解决它以便我最终可以安装驱动程序?

谢谢,

吉尔

ubuntu nvidia

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

如何使用OpenCV人脸识别模块获得更好的效果

我正在尝试使用OpenCV的人脸识别模块来识别视频中的2个主题.我从视频中裁剪了第一个主题的30张脸部图像和第二个主体的20张脸部图像,我将这些用作我的训练集.

我已经测试了所有三种方法(特征脸,Fisherfaces和LBP直方图),但我没有在这两种方法中都取得好成绩.有时,第一个主题被分类为第二个主题,反之亦然,有时将错误检测分类为两个主题之一,有时视频中的其他人被分类为两个主题之一.

如何提高性能?扩大训练组会有助于改善训练效果吗?我可以考虑在C++中进行人脸识别吗?我认为这应该是一项简单的任务,因为我只想识别两个不同的主题.

这是我的代码(我在VS2012的Windows 8上使用OpenCV 2.4.7):

#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/contrib/contrib.hpp"


#include <iostream>
#include <stdio.h>
#include <fstream>
#include <sstream>

#define EIGEN 0
#define FISHER 0
#define LBPH 1;
using namespace std;
using namespace cv;

/** Function Headers */
void detectAndDisplay( Mat frame , int i,Ptr<FaceRecognizer> model);


static Mat toGrayscale(InputArray _src) {
    Mat src = _src.getMat();
    // only allow one channel
    if(src.channels() != 1) {
        CV_Error(CV_StsBadArg, "Only Matrices with one channel are supported");
    }
    // create and return …
Run Code Online (Sandbox Code Playgroud)

opencv image-processing computer-vision

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

Matlab dir()需要永远运行

我在一个包含500,000个文件的目录上使用命令"dir".现在已经运行了15分钟.

有没有办法加快速度?也许是一个替代命令?

提前致谢,

吉尔.

matlab dir

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

Matlab dec2bin给出了错误的值

我正在使用Matlab的dec2bin将十进制数转换为二进制字符串.但是,我得到了错误的结果.例如:

>> dec2bin(13339262925365424727)

ans =

1011100100011110100101001111010011000111111100011011000000000000
Run Code Online (Sandbox Code Playgroud)

我在C++实现和wolfram alpha中检查了两者,正确的结果是:

1011100100011110100101001111010011000111111100011011001001010111
Run Code Online (Sandbox Code Playgroud)

我使用Matlab的desc2bin有什么问题吗?

谢谢,

吉尔.

matlab

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

python pandas read_csv 需要永远

我正在尝试使用 panda 加载一个 128MB 的文件(谷歌搜索后我发现它比 open 或 np.loadtxt 快)。该文件有 1000 行,每行包含 65K 个值,这些值是 0 或 1,由单个空格分隔。

出于某种原因,这需要很长时间,我不知道为什么。128MB 对我来说听起来很小,Matlab 会在大约一分钟内加载它。

这是我的(简单)代码:

import os
import numpy as np
import pandas as pd
import time

DATA_DIR='D:\BinaryDescriptors3\ORBLearningIntermediatResults2'
TEST_DIR='yosemite_harris'
OUT_DIR='D:\BinaryDescriptors3\ORBLearningTripletsFinalResults'
PATCH_NUM=1000

data_filename=TEST_DIR+'_' + str(PATCH_NUM) + '_ORBresfile.txt'

data_filepath = os.path.join(DATA_DIR,data_filename)

s=time.time()
print "START"
data =  pd.read_csv(data_filepath,delimiter=' ')

e=time.time()

print e-s
Run Code Online (Sandbox Code Playgroud)

它从未到达最后一行(我在终止它之前给了它 30 分钟)。为什么读取一个 128MB 的小文件需要这么长时间?

编辑:

  1. 尝试使用以下命令仅读取一行时:

    数据 = pd.read_csv(data_filepath,delimiter='', nrows=1)

我收到以下错误:

Traceback (most recent call last):
  File "C:\eclipse\plugins\org.python.pydev_3.7.1.201409021729\pysrc\pydevd.py", line 2090, in <module>
    debugger.run(setup['file'], None, None) …
Run Code Online (Sandbox Code Playgroud)

python performance pandas

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

C++ - 一个简单的 FindFirstFile 示例有问题

我正在使用以下超超级简单代码列出目录中的所有文件(Windows 8.1、Visual Studio Express 2013、C++):

#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>

#include <limits>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <bitset>

#include <windows.h>
#include <tchar.h>
#include <stdio.h>


using namespace std;


void get_file_list(string DATA_DIR)
{
    HANDLE hFind;
    WIN32_FIND_DATA data;

    hFind = FindFirstFile(LPCWSTR(DATA_DIR.c_str()), &data);

    if (hFind != INVALID_HANDLE_VALUE) {
        do {
            printf("%s\n", data.cFileName);
        } while (FindNextFile(hFind, &data));
        FindClose(hFind);
    }
}

int main(int argc, char** argv)
{

    string DATA_DIR = "D:\\drobpox\\Dropbox\\BinaryDescriptors\\LFW\\DATA\\*.*";
    //string DATA_DIR = "c:\\Users\\GilLevi\\Downloads\\GraphsSURF\\GraphsSURF\\bark\\*.jpg";
    string OUT_DIR = "D:\\drobpox\\Dropbox\\BinaryDescriptors\\LFW\\LATCH_TXT_FILES\\LATCH8";


    get_file_list(DATA_DIR);

}
Run Code Online (Sandbox Code Playgroud)

但是,我“hFind”总是等于“INVALID_HANDLE_VALUE”。我仔细检查了路径并尝试了各种不同的路径。

可能是因为我正在运行 …

c++

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

FFT和IFFT - Matlab和openCV中结果之间的差异

我正在尝试使用openCV将这个简单的Matlab代码转换为C++:

localstd=sqrt(abs(ifft2(fft2(output).*gf)));
Run Code Online (Sandbox Code Playgroud)

它意味着取矩阵"输出"的fft,将其逐个元素与矩阵"gf"相乘,然后取出它的ifft然后取其大小.

我正在尝试以下简单的代码:

Mat complexI;
dft(output, complexI,cv::DFT_SCALE||DFT_COMPLEX_OUTPUT);
Mat copmlexI2=Mat(n,n,CV_32F);
mulSpectrums(complexI,gf,copmlexI2,DFT_COMPLEX_OUTPUT);
dft(copmlexI2,copmlexI2,cv::DFT_INVERSE||DFT_COMPLEX_OUTPUT);

Mat planes[]= {Mat::zeros(output.size(), CV_32F), Mat::zeros(output.size(), CV_32F)};;
split(copmlexI2, planes);                   // planes[0] = Re(DFT(I), planes[1] = Im(DFT(I))
magnitude(planes[0], planes[1], planes[0]);// planes[0] = magnitude

Mat localstd = planes[0];

for (int i=0;i<localstd.rows;i++){
    for (int j=0;j<localstd.cols;j++){
        localstd.at<float>(i,j)= sqrt(localstd.at<float>(i,j));
    }
}

for (int i=0;i<localstd.rows;i++){
        for (int j=0;j<localstd.cols;j++){
            localstd.at<float>(i,j)/= 255;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这很简单.我正在拿"输出"的dft,将它的频谱乘以"df",然后取出它的ifft.接下来,我将结果分成实数和虚数平面并取大小.最后,我取其中的sqrt并用255除以标准化.

我得到的结果与我在Matlab中获得的结果非常不同.我在这里错过了什么?有关如何修复代码的任何想法?

提前致谢!

matlab opencv image-processing

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