小编Ale*_*son的帖子

使用python opencv跟踪白色

我想使用webcam和python opencv跟踪白色.我已经有了跟踪蓝色的代码.

_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

# define range of blue color in HSV
lower_blue = np.array([110,100,100])
upper_blue = np.array([130,255,255])

#How to define this range for white color


# Threshold the HSV image to get only blue colors
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# Bitwise-AND mask and original image
res = cv2.bitwise_and(frame,frame, mask= mask)

cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
Run Code Online (Sandbox Code Playgroud)

我应该给出什么作为跟踪白色的下限和上限!! ?? 我尝试改变价值观,但我得到了其他颜色,但白色没有运气!

是HSV值还是BGR值指定为下限和上限???

PS:我必须把最后的结果作为二进制图像进行进一步处理!!

请帮我 !!!

python opencv hsv computer-vision color-tracking

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

OpenCV:solvePnP检测问题

我有使用OpenCV精确检测标记的问题.

我录制了这个问题的视频:http://youtu.be/IeSSW4MdyfU

如你所见,我正在检测的标记在某些摄像机角度稍微移动.我在网上看到这可能是相机校准问题,所以我会告诉你们我是如何校准相机的,也许你能告诉我我做错了什么?

在开始时我正在从各种图像中收集数据,并将校准角存储在这样的_imagePoints矢量中

std::vector<cv::Point2f> corners;
_imageSize = cvSize(image->size().width, image->size().height);

bool found = cv::findChessboardCorners(*image, _patternSize, corners);

if (found) {
    cv::Mat *gray_image = new cv::Mat(image->size().height, image->size().width, CV_8UC1);
    cv::cvtColor(*image, *gray_image, CV_RGB2GRAY);

    cv::cornerSubPix(*gray_image, corners, cvSize(11, 11), cvSize(-1, -1), cvTermCriteria(CV_TERMCRIT_EPS+ CV_TERMCRIT_ITER, 30, 0.1));

    cv::drawChessboardCorners(*image, _patternSize, corners, found);
}

_imagePoints->push_back(_corners);
Run Code Online (Sandbox Code Playgroud)

收集到足够的数据后,我用这段代码计算相机矩阵和系数:

std::vector< std::vector<cv::Point3f> > *objectPoints = new std::vector< std::vector< cv::Point3f> >();

for (unsigned long i = 0; i < _imagePoints->size(); i++) {
    std::vector<cv::Point2f> currentImagePoints = _imagePoints->at(i);
    std::vector<cv::Point3f> currentObjectPoints;

    for (int j = …
Run Code Online (Sandbox Code Playgroud)

camera opencv markers camera-calibration ios

20
推荐指数
2
解决办法
6467
查看次数

std :: unique_ptr,带有win32 LocalFree的自定义删除器

我有win32 API CommandLineToArgvW返回LPWSTR*并警告我

CommandLineToArgvW为参数字符串的指针和参数字符串本身分配一块连续的内存; 当不再需要时,调用应用程序必须释放参数列表使用的内存.要释放内存,请使用单个调用LocalFree函数.

请参阅 http://msdn.microsoft.com/en-us/library/windows/desktop/bb776391(v=vs.85).aspx

在上述情况下,什么是释放内存的C++惯用方法?

我正在考虑std::unique_ptr使用自定义删除器,类似的东西:

#include <Windows.h>
#include <memory>
#include <iostream>

template< class T >
struct Local_Del
{
   void operator()(T*p){::LocalFree(p);}
};

int main(int argc, char* argv[])
{
   {
      int n = 0;
      std::unique_ptr< LPWSTR, Local_Del< LPWSTR > > p( ::CommandLineToArgvW(L"cmd.exe p1 p2 p3",&n) );
      for ( int i = 0; i < n; i++ ) {
         std::wcout << p.get()[i] << L"\n";
      }
   }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码有什么问题吗?

c++ winapi memory-management unique-ptr c++11

16
推荐指数
3
解决办法
3425
查看次数

线串之间的相似性

我有一些GPS录制的曲目,更正式地可以描述为多个线串.

现在,一些录制的曲目可能是同一路线的录音,但由于GPS系统的不准确,录音是在不同的场合制作的,而且它们可能是以不同的速度录制的,所以它们不会完美匹配,但在人类在地图上查看时仍然看起来足够接近,以确定它实际上是已记录的相同路线.

我想找到一个计算两个线串之间相似性的算法.我已经提出了一些本土方法来做到这一点,但想知道这是否已经有一个很好的算法来解决它.

考虑到类似的方法在地图上表示相同的路径,您将如何计算相似度?

编辑:对于那些不确定我在说什么的人,请查看此链接以获取行字符串的定义:http://msdn.microsoft.com/en-us/library/bb895372.aspx - 我我询问字符串.

sql-server gis algorithm

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

带有x时间轴的R图:如何强制刻度标签成为日子?

我有这个csv格式的文件:

timestamp,pages
2011-12-09T11:20:50.33,4
2012-01-23T17:44:02.71,132
2012-01-28T15:07:59.34,168
Run Code Online (Sandbox Code Playgroud)

第一列是时间戳,第二列是页数.我需要在垂直轴上绘制页面计数,在水平轴上绘制时间戳.

时间戳不是有规律的间隔,我在十二月有一天,一月有两天.

我试过这段代码

df = read.csv("my_data.csv")
df$timestamp = strptime(df$timestamp, "%Y-%m-%dT%H:%M:%S")
plot(df$timestamp,df$pages)
Run Code Online (Sandbox Code Playgroud)

我得到了一个在x轴中间只有一个刻度并且带有标签"Jan"的情节:它没有错,但我希望有三个刻度,只有天数和月份.

我试过了

plot(df$timestamp,df$pages,xaxt="n")
axis.Date(1,df$timestamp,"days")
Run Code Online (Sandbox Code Playgroud)

但没有绘制x轴.任何的想法?谢谢

plot r

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

一个新的婴儿贺卡的C++代码片段

我的一个朋友给我发了这段代码片段来庆祝他的新生婴儿:

void new_baby_name() { father_surname++; }
Run Code Online (Sandbox Code Playgroud)

该片段是从他的角度来看,他是父亲,新生儿从他那里得到了姓氏.

我回答说:

class father_name {};
class mother_name {};
class new_baby_name: public father_name, public mother_name {};
Run Code Online (Sandbox Code Playgroud)

但我对我的回答并不完全满意......

c++

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

用于remove_if的惯用C++

我有这门课

class Point2D
{
public:
 bool isValid();
 // ...
private:
 double x_, y_;
};
Run Code Online (Sandbox Code Playgroud)

我有一个std::vector< Point2D >,我想删除无效点,现在我喜欢这样:

bool invalid ( const Point2D& p )
{
 return !p.isValid();
}

void f()
{
 std::vector< Point2D > points;
 // fill points
 points.erase( std::remove_if( points.begin(), points.end(), invalid ), points.end() );
 // use valid points
}
Run Code Online (Sandbox Code Playgroud)

是否有一种标准的方法(精美),例如,不需要"复制"类方法的功能Point2D::isValid

也许使用C++ 11 lambda(我对lambda不是很熟悉)?

c++ c++11

10
推荐指数
5
解决办法
4534
查看次数

相当于LaTeX\texttt的R降价是什么?

相当于LaTeX的R降价是\texttt多少?

有了这个MWE:

---
title: "A test"
author: "Alessandro"
date: "February 19, 2016"
output: pdf_document
---
```{r, echo=FALSE}
d<-data.frame(product_name=c('d','a','b','c')) # what to write here to get a typewriter font?
```

Product names are: `r sort(d$product_name)`.
Run Code Online (Sandbox Code Playgroud)

我得到这个pdf:

在此输入图像描述

虽然我想从这个文件中获取输出.tex

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}

\title{A test}
\author{Alessandro}

\begin{document}
\maketitle
Product names are: \texttt{a, b, c, d}.

\end{document}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

markdown latex r

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

GLSL折射功能说明可用吗?

我正在尝试调试我的简单光线跟踪器,模拟来自穿过镜头的一个点的光线.我只需要折射效果.

我试图手工完成,但最后我refract从GLSL中找到了,这在GLSL 1.1中有记录,如下所示:

//For a given incident vector I, surface normal N and ratio of 
//indices of refraction, eta, refract returns the refraction vector, R. 
//R is calculated as:

k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I));
if (k < 0.0)
    R = genType(0.0); // or genDType(0.0)
else
    R = eta * I - (eta * dot(N, I) + sqrt(k)) * N;

//The input parameters I and N should be normalized …
Run Code Online (Sandbox Code Playgroud)

math geometry raytracing glsl

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

在windbg中,什么可能导致消息"警告:无法验证mydll.dll的时间戳"?

我有一个转储(由SysInternal创建procdump),当我要求查看一个线程的调用堆栈时,我收到错误:

"WARNING: Unable to verify timestamp for mydll.dll"
Run Code Online (Sandbox Code Playgroud)

我拥有源代码mydll.dll,我有PDB它的文件,调用堆栈似乎有效,但我想知道什么可能是消息的原因.在过去,我没有收到警告信息.

谢谢.

debugging symbols windbg dump

7
推荐指数
2
解决办法
7239
查看次数