我安装了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)提前感谢!
我正在使用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",但我希望它是"文件名".
我在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)
这里有关于延迟的相同问题,我该如何理解?
我想使用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)
这里的最小精度是什么意思?
我是一个在流中查找轮廓的程序,例如:

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

黄色部分是轮廓的时刻,
我尝试使用fitLineopencv的功能,但结果是无稽之谈,任何想法如何获得轮廓的中间线,这应该代表我的轮廓的关键方面.顺便说一句**我不是要求代码!**只是提示我该怎么做?
提前感谢您的帮助
我有一个视频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) 我有一个框架,并希望在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)
知道为什么我会这样做,我该如何解决它
我正在使用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版本
在此先感谢您的帮助
我试着得到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)
我的问题是如何获取此消息并将其保存在字符串中以获取每个错误!如果有可能逃脱程序崩溃!
提前致谢!
我有一个代表电机声音的音频文件.我一直在读"正常"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.我的问题是如何计算该系统的订单分析!?非常感谢您的帮助!