小编Eng*_*ine的帖子

在Atom中使用anaconda环境

我安装了Anaconda(Python 3.6)和tensorflow(python 3.5).我已经设法让它在Spyder和sublime text 3上运行(通过制作新的构建系统).现在所有人都在使用Atom(我不习惯).所以我试图"告诉"Atom在以下文件夹中使用python:

C:\users\engine\anaconda3\envs\tensorflow\python.exe
Run Code Online (Sandbox Code Playgroud)

没有任何成功,任何想法如何做到这一点或我应该使用什么样的包(我使用windows所以virtualenv)提前感谢!

python atom-editor hydrogen

20
推荐指数
4
解决办法
3万
查看次数

在Qt中删除文件名的扩展名

我正在使用Qt从用户那里获取文件名:

QString fileName = QFileDialog::getOpenFileName(this,tr("Select an image file"),"d:\\",tr("Image files(*.tiff *.tif )"));
Run Code Online (Sandbox Code Playgroud)

它工作,但我需要文件名没有它的扩展名,是否有可能在Qt?当我尝试:

QString f = QFileInfo(fileName).fileName();
Run Code Online (Sandbox Code Playgroud)

f就像 "filename.tif",但我希望它是"文件名".

c++ qt

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

ALSA期间的含义

我在Linux上使用ALSA和音频应用程序,我发现很棒的文档解释了如何使用它: 1这一个.虽然我有一些问题需要理解这部分设置:

 /* Set number of periods. Periods used to be called fragments. */ 
if (snd_pcm_hw_params_set_periods(pcm_handle, hwparams, periods, 0) < 0) {
  fprintf(stderr, "Error setting periods.\n");
  return(-1);
}
Run Code Online (Sandbox Code Playgroud)

什么意思是设置我使用PLAYBACK模式时的一段时间,并且:

/* Set buffer size (in frames). The resulting latency is given by */
/* latency = periodsize * periods / (rate * bytes_per_frame)     */
if (snd_pcm_hw_params_set_buffer_size(pcm_handle, hwparams, (periodsize * periods)>>2) < 0) {
  fprintf(stderr, "Error setting buffersize.\n");
  return(-1);
}
Run Code Online (Sandbox Code Playgroud)

这里有关于延迟的相同问题,我该如何理解?

c linux audio alsa

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

cv :: TermCriteria如何在opencv中工作?

我想使用opencv函数cv::cornerSubPix() ,因为我需要另一个,cv::TermCriteria 我的问题是关于这个函数的最后一个参数:

cv::TermCriteria(cv::TermCriteria::MAX_ITER +
                cv::TermCriteria::EPS,
                50, // max number of iterations
                0.0001)); // min accuracy
Run Code Online (Sandbox Code Playgroud)

这里的最小精度是什么意思?

c++ opencv

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

在OpenCV中找到轮廓的"fitLine"

我是一个在流中查找轮廓的程序,例如:

轮廓

我想找到可以描述这个轮廓的"一组点",如红线所示:

在此输入图像描述

黄色部分是轮廓的时刻,

我尝试使用fitLineopencv的功能,但结果是无稽之谈,任何想法如何获得轮廓的中间线,这应该代表我的轮廓的关键方面.顺便说一句**我不是要求代码!**只是提示我该怎么做?

提前感谢您的帮助

c++ opencv image-processing contour

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

使用openCV阅读视频

我有一个视频engine2.avi,我想用openCV阅读和展示.这是我的代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;

int main(int argc, char** argv)
{
    string filename = "D:\\BMDvideos\\engine2.avi";
    VideoCapture capture(filename);
    Mat frame;

    if( !capture.isOpened() )
        throw "Error when reading steam_avi";

    namedWindow("w", 1);
    for( ; ; )
    {
        capture >> frame;
        //if(!frame)
        //    break;
        imshow("w", frame);
        waitKey(20); // waits to display frame
    }
    waitKey(0);
}
Run Code Online (Sandbox Code Playgroud)

如果我的文件有编解码器YUV 4:2:2 (UYVY)(我使用Direct-Show录制视频),此代码不起作用,但是当我使用视频时,我可以使用openCV!

有谁知道这是如何工作的?

更新:

在阅读了一些链接后,建议捕获异常将解决问题,我修改了我的代码.它没有帮助,但这里是修改后的代码:

cv::VideoCapture cap("d:\\BMDvideos\\engine2.avi");
cv::Mat frame;

try
{
    cap >> frame;
}
catch(cv::Exception ex)
{
    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ opencv directshow video-processing video-streaming

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

在框架上用opencv绘制一个矩形

我有一个框架,并希望在specefic位置绘制一个矩形,矩形:

#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<conio.h>

 int main () {
cv::Mat frame = cv::imread("cmd.png");
    cvRectangle(
            &frame,
            cvPoint(5,10),
            cvPoint(20,30),
            cvScalar(255,255,255)
       );
     cv::imshow("test " , frame);
while (cv::waitKey() != 23) ;
return 1; 
 }
Run Code Online (Sandbox Code Playgroud)

wenn我运行代码我得到了内存错误.

 Unhandled exception at 0x000007fefd42caed in OpenCV_capture.exe: Microsoft C++ 
exception: cv::Exception at memory location 0x0018ead0..
Run Code Online (Sandbox Code Playgroud)

知道为什么我会这样做,我该如何解决它

c++ opencv

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

背景和前景在OpencV

我正在使用OpenCV243开发项目,我需要在流中获取前景,我的问题是我使用cv :: absdiff来获得它并没有真正帮助,这是我的代码和结果.

#include <iostream>
#include<opencv2\opencv.hpp>
#include<opencv2\calib3d\calib3d.hpp>
#include<opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>

int main (){
    cv::VideoCapture cap(0);
    cv::Mat frame,frame1,frame2;
    cap >> frame;
    frame.copyTo(frame1);
    cv::imwrite("background.jpeg",frame1);
    int key = 0;
    while(key!=27){
        cap >> frame;
        cv::absdiff(frame, frame1, frame2);  // frame2 = frame  -frame1
        cv::imshow("foreground", frame2);
        if(key=='c'){
            //frame.copyTo(frame2);
            cv::imwrite("foreground.jpeg", frame2); 
            key = 0;
        }

        cv::imshow("frame",frame);
        key = cv::waitKey(10);
    }
    cap.release();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

背景 前景 正如你可以看到减法工作,但我想要得到的只是更改的值,例如,如果在[130,130,130]的背景中有一个像素, 并且相同的像素 在帧中有[200,200,200]我想要得到的确切的最后的值,而不是[70,70,70] 我已经看过这个教程:http://mateuszstankiewicz.eu/?p = 189, 但我无法理解代码,我有问题设置cv :: BackgroundSubtractorMOG2与我openCV版本

在此先感谢您的帮助

c c++ opencv

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

在c ++中获取opencv错误

我试着得到opencv的错误!说我有这个程序:

#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>

int main (){
    cv::Mat frame;
    cv::VideoCapture cap(1); // I don't have a second videoinput device! 
    int key = 0; 

    while(key !=27){
        cap >> frame;
        cv::imshow("frame",frame);
        key = cv::waitKey(10);
    }

    cap.release();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我在控制台中收到这条消息:

OpenCV Error: Assertion failed (size.width>0 && size.height>0) in unknown functi
on, file ..\..\..\opencv\modules\highgui\src\window.cpp, line 261
Run Code Online (Sandbox Code Playgroud)

我的问题是如何获取此消息并将其保存在字符串中以获取每个错误!如果有可能逃脱程序崩溃!

提前致谢!

c++ opencv

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

如何在MATLAB中实现订单分析

我有一个代表电机声音的音频文件.我一直在读"正常"fft没有对机器进行有价值的分析,我应该使用Order分析来描述机器的"行为".我在增加速度的同时记录了它的声音,我将记录放在一起并计算出它的频谱.这是代码:

%% read the Audio file and plot its 
clear, clc , clf;
M = 512;
k =1 
data= 0 ;
   for i =100:5:180
    fileName =['A10_uSp0_Mic100k_2nd_V_',int2str(i),'.wav']
    [x(:,k),Fs] = audioread(fileName);
    k = k+1 ;
end
for i = 1:length(x(1,:))
    data = [data(:);x(:,i)];
end
 k = length(x(1,:));
    while k ~= 2
   data = [data(:);x(:,k)];
   k = k -1;
    end
spectrogram(data,hamming(M),M/2,0:20:4000,Fs,'yaxis');
Run Code Online (Sandbox Code Playgroud)

结果如下:

频谱图

正如您可能看到的那样,我为每个时间点将机器的速度提高了5.我的问题是如何计算该系统的订单分析!?非常感谢您的帮助!

matlab signal-processing

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