小编fak*_*unt的帖子

C++从字符串中间提取数字

我有一个vector包含strings遵循格式的text_number-number

例如: Example_45-3

我只想要第一个数字(45在示例中),而不是我能用当前代码做的其他事情:

std::vector<std::string> imgNumStrVec;
for(size_t i = 0; i < StrVec.size(); i++){
    std::vector<std::string> seglist;
    std::stringstream ss(StrVec[i]);
    std::string seg, seg2;
    while(std::getline(ss, seg, '_')) seglist.push_back(seg);
    std::stringstream ss2(seglist[1]);
    std::getline(ss2, seg2, '-');
    imgNumStrVec.push_back(seg2); 
}
Run Code Online (Sandbox Code Playgroud)

是否有更简化和更简单的方法来做到这一点?如果是的话,他们是什么?

我纯粹是出于在一天结束时学习如何更好地编写代码的愿望,上面的代码确实成功地提取了第一个数字,但它看起来很长并且很圆润.

c++ string stringstream

23
推荐指数
7
解决办法
4万
查看次数

二进制字符串到十六进制c ++

将二进制字符串更改为十六进制时,我只能根据我找到的答案将其设置为特定大小.但我想以更有效的方式将MASSIVE二进制字符串更改为完整的Hex字符串,这是我遇到的完全完成的唯一方法:

for(size_t i = 0; i < (binarySubVec.size() - 1); i++){
    string binToHex, tmp = "0000";
    for (size_t j = 0; j < binaryVecStr[i].size(); j += 4){
        tmp = binaryVecStr[i].substr(j, 4);
        if      (!tmp.compare("0000")) binToHex += "0";
        else if (!tmp.compare("0001")) binToHex += "1";
        else if (!tmp.compare("0010")) binToHex += "2";
        else if (!tmp.compare("0011")) binToHex += "3";
        else if (!tmp.compare("0100")) binToHex += "4";
        else if (!tmp.compare("0101")) binToHex += "5";
        else if (!tmp.compare("0110")) binToHex += "6";
        else if (!tmp.compare("0111")) binToHex += "7";
        else if …
Run Code Online (Sandbox Code Playgroud)

c++ binary hex

8
推荐指数
2
解决办法
7816
查看次数

将2 Mats的内容添加到另一个Mat opencv c ++中

我只是想将2个不同的Mats 的内容添加到另外1个Mat.我试过了:

Mat1.copyTo(newMat);
Mat2.copyTo(newMat);
Run Code Online (Sandbox Code Playgroud)

但这似乎只是覆盖了之前的内容Mat.

这可能是一个简单的问题,但我迷路了.

c++ opencv mat

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

C++ Place an image on top of another image in a certain location

I'm looking for a way to place on image on top of another image at a set location.

I have been able to place images on top of each other using cv::addWeighted but when I searched for this particular problem, there wasn't any posts that I could find relating to C++.

Quick Example:

200x200 Red Square & 100x100 Blue Square

在此处输入图片说明 & 在此处输入图片说明

Blue Square on the Red Square at 70x70 (From top left corner Pixel of Blue Square)

在此处输入图片说明

c++ opencv image

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

opencv c ++ ORB Bag Of Words

在阅读了这篇论文以及许多answers.opencv问题之后,我想知道是否有任何ORB Bag Of Words的代码示例?我只能找到SURFSIFT举例.

c++ opencv orb

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

opencv c ++比较不同图像中的关键点位置

比较两个图像时feature extraction,如何比较keypoint距离,以忽略明显不正确的距离?

我发现在比较相似的图像时,大多数情况下它可以相当准确,但有时它可以抛出完全独立的匹配.

所以我想keypoints从两个图像中查看两组图像并确定匹配keypoints是否相对位于两者的相同位置.如在其中已知keypoints在图像1上1,2和3相距很远,因此在图像2上匹配的对应关键点应该具有彼此远离彼此相当类似的距离.

我过去曾经使用RANSACminimum distance检查但只是为了一些效果,它们似乎并不像我追求的那么彻底.

(使用ORBBruteForce)

编辑

"x,y和z"更改为"1,2和3"

编辑2 - 我将尝试使用快速绘制的示例进一步解释:

说我有这个作为我的形象:

在此输入图像描述

我给它这个图像来比较:

在此输入图像描述

它是原始的裁剪和压扁版本,但显然相似.

现在,假设您已经完成了它feature detection并且它返回了这keypoints两个图像的结果:

在此输入图像描述在此输入图像描述

keypoints两个图像是在大致相同的区域,并且成比例地相同的距离相互远离.把keypoint我圈起来,我们称之为"Image 1 Keypoint 1".

在此输入图像描述

我们可以看到keypoints周围有5个.它们之间的距离和我想要获得的"Image 1 Keypoint 1",以便将它们与"Image 2 Keypoint 1"及其5个环绕keypoints在同一区域(见下文)进行比较,以便不仅仅是将a keypoint与另一个进行比较keypoint,但要比较基于位置的"已知形状"keypoints.

在此输入图像描述

-

那有意义吗?

c++ opencv keypoint orb

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

标签 统计

c++ ×6

opencv ×4

orb ×2

binary ×1

hex ×1

image ×1

keypoint ×1

mat ×1

string ×1

stringstream ×1