Porting from pcl-1.5 to pcl-1.7 - c++

I am using ubuntu14.04. I have a code which is written in pcl-1.5. I now want to run it in pcl-1.7. It's giving a lot of compilation errors.
Is there a way to port my classes and functions from pcl-1.5 to pcl-1.7?

I understand that you want to build your project on PCL 1.5 while PCL 1.7 is installed. This is possible. I assume you install PCL 1.5 from source and then build it so that it ends up with a build directory. These instructions are vague because it has been a while since I have done this but here they are: In the project you are trying to build (I am assuming you are using cmake), put something like the following line before the line find_package(PCL REQUIRED) (or the similar line that you have):
SET(PCL_DIR /path/to/pcl1.5/build CACHE LOCATION "Where the PCL version I want to use has been built to")
---Edit based on comment---
Okay, so it seems by PCL 1.5 code you mean code that you have previously written for PCL 1.5 and want to run with PCL 1.7. This should be possible but those with a good knowledge of the main differences between 1.5 and 1.7 probably will not have the time to answer this question. As such I suggest you check the errors as they come up during compilation and running and check the new API for the new way of doing things. It will be easier to locate the errors if you compile your project bit by bit. If you understand what the code is doing it will be easier also. That is all that I have.

Related

OpenCV in Code::Blocks: The application was unable to start correctly (0xc00000be)

I set up OpenCV with Code::Blocks as per this tutorial: http://kevinhughes.ca/tutorials/opencv-install-on-windows-with-codeblocks-and-mingw/.
I've got as far as building the test program at the end successfully, but when I try to run it I get the following error: "The application was unable to start correctly (0xc00000be). Click OK to close the application."
The one thing that is certainly different from the tutorial for me is that I'm working with OpenCV 3.0.0, Code::Blocks 13.12 and the latest version of mingw (number not obvious from their website or the installer).
I found that other people had had this problem in the past, e.g. The application was unable to start correctly (0xc00000be)
However, it has been a long time since that thread was active, I'm working with newer versions of the software and, most importantly, the answer given there didn't help (I compiled openCV with the same mingw that I'm using with Code::Blocks), so I thought this question would be worth asking (sorry if it's not, I'm rather new to this).
Could anybody suggest a fix that might get rid of this error?
A few other things to note:
I didn't download the Code::Blocks that came with mingw as I was advised against it, I got them separately as per the tutorial
I have installed OpenCV and Code::Blocks on my E: drive, though mingw is still on my C:.
I have added both mingw and OpenCV to my PATH variable, and mingw to my Path variable
I have linked the libraries in both the main compiler settings for Code::Blocks and the Build Options of my project.
I'm working from a 64-bit Windows 7 Laptop, but I have done everything 32-bit style as advised in the tutorial.
Thanks in advance!
So, one solution I've found to this problem is to copy all the .dll files from "...\opencv\build\x86\mingw\bin" to the project file (build directory).
Having done that, the project will run fine. This still doesn't (directly) explain why it wont run without those files (at least, several sources including the tutorial imply it should), and so isn't really optimal. I will continue to look for a solution for this so I don't have to clutter every opencv project I make with the .dlls.
However, for anyone simply wanting to get stuck into coding who is having this problem, I recommend that solution.

What can happen if I update code signature for SDL2?

I am a new user of macintosh and uses OS X 10.9.4 Mavericks. I have recently installed Xcode and I have downloaded SDL2. This is where the problems started.
When I tried to compile some code that uses SDL2, I got a Xcode crash. The crash was expected behaviors since the reason was an invalid code signature in SDL2.
So I googled this and 2 solutions came up in this link. The first solution recommended that I downloaded the source code for SDL2 and recompiled it. The second solution was to update the code signature as
codesign -f -s - ~/Library/Frameworks/SDL2.framework/SDL2
The second solution seems to be the preferred one since the first solution probably does this in the end anyway. However, I am not completely familiar with code signatures since I come from a windows environment (where these things are hidden for the most) and also since all programming I have done have been for internal use only. So this is the long introduction and my questions are then:
Where is the code signature located (inside the frameworks or somewhere else in the computer)?
What can happen if I update the code signature? Especially can this cause any trouble in the future and even if SDL2.framework is uninstalled?
BR Patrik
You are not required to code sign a framework you build and install yourself (this is what I do for SDL 2). When Frameworks are codesigned the signature can be found in the "Versions" subdirectory of the Framework bundle. there will be the usual _CodeSignature directory for each signed "version", just as there is for an "app" bundle.
resigning the framework wont affect anything in your system. when you update the SDL2 framework to a version that doesnt have this problem your changes will be "undone".

How do I solve this OpenNi dependency error in PCL when using the Kinect?

Although I've just signed up for Stackoverflow, I've used answers.ros.org, pcl-users.org, and other similar sites. I'll try to give as much information as possible because although similar problems come up in Google searches I cannot find an answer to this.
I'm running Ubuntu 12.04 and I've installed PCL 1.7 via their set of instructions here: http:// pointclouds.org/downloads/linux.html
Following the tutorials I was able to get the "reader" and "writer" sample programs to work with the sample PCD's they give. I was also able to successfully use cmake to compile a more advanced program: http://pointclouds.org/documentation/tutorials/normal_distributions_transform.php#normal-distributions-transform
The problem begins whenever I try to make the iograbber or any other visualization programs that involve the Kinect. This is specifically the one I really want to use: http://pointclouds.org/documentation/tutorials/openni_grabber.php#openni-grabber Repeatedly, without fail, this has always been the warning I encounter when using cmake:
-- checking for module 'openni-dev'
-- package 'openni-dev' not found
-- Could NOT find openni (missing: OPENNI_INCLUDE_DIRS)
** WARNING ** io features related to openni will be disabled
It gives this warning several times in a row related to various components checking for it. Now you might say, "silly user, why don't you simply install openni-dev?"
Well when I initially did it with sudo apt-get install -y openni-dev (notice the -y which I soon learned about) it deleted most of my ROS/PCL files. Thread is here: http:// www.pcl-users.org/How-can-I-get-PCD-files-from-a-streaming-Kinect-td4033721.html It broke some packages and long story short I found out about aptitude and eventually I got myself back to square 1.
The thing is, I'm fairly sure I have openni 1.5.4 installed but somehow it isn't being found. When I go to my usr/lib folder it only shows an OpenNI2 folder, and not an OpenNI folder. I know there's a lot of issues with openni-dev popping up for PCL and ROS so I hope this answer will be able to help others as well. Before you ask, I'm copying/pasting the CMakeLists and C++ files exactly as I find it. I don't have a lot of programming experience so I hope I'm not missing something obvious.
If you use kinect v2, there's no OpenNI support.
So you can use this grabber:https://github.com/UnaNancyOwen/KinectGrabber/tree/Kinect2Grabber

OpenCV haartraining: Mergevec error: Input file does not exist or not readable

Following this tutorial, I've created my positive samples but need to merge them now, using mergevec. I downloaded the mergevec.exe binary file provided and got the two required dlls cxcore100.dll and highgui100.dll. However, when I run it like so:
mergevec samples.txt samples.vec
it gives me the error:
ERROR: Input file <filename> does not exist or not readable.
What should I do to fix this? My vec files are fine, because I was able to view them using the opencv_createsamples utility. So I know they're fine.
I ran into this issue as well and made a python utility that combines .vec files to avoid installing openCV again: https://github.com/wulfebw/mergevec
Hope it helps.
I was in the same situation as you few days ago so i'll try to help you out =P.
First of all i am interested to know where you found the mergevec.exe, because it isn't available to download anymore if i recall. I ask because i think that you might have downloaded an exe compiled on Linux. I had the same error when i tried to execute the mergevec, i had compiled on Ubuntu, on my Windows computer. Even with the 2 dlls.
As i explained it here , The mergevec from Naotoshi was originally made for Unix distribution, so under windows you will encounter a lot of problems. I first tried to do it on windows but i abandonned because it was too complicated and even with a full Cygwin installation i could not compile the mergevec.cpp.
What i advise you to do is to create yourself an Ubuntu virtual machine and to compile your own mergevec.exe. Once done you can copy your vec files in your virtual machine and merge them under Ubuntu. After this you can bring back the merged vec file to Windows if you want (It is better to not run the training under a VM: less computation power).
Here is what i did:
Installed VMware player with Ubuntu 14.0.4 (although i don't recommend it, still some bugs)
Installed OpenCV from the sources with TBB. There are a lot of tutorials, but the only one that worked for me is the OPenCV website, they are the more accurate on the libraries you mandatorily need.
I downloaded the GitHub classifier training and then I followed the commands given and it worked well.
If you encounter any library problem or OpenCV Installation issue don't hesitate i went through them too.

OpenCV - How do I get started?

I just don't seem to be able to get OpenCV to work properly. Here's what I want to accomplish:
Use CodeBlocks (which I installed using codeblocks-10.05mingw-setup.exe) with OpenCV (installer: OpenCV-2.4.2.exe) on my Windows x64.
I've tried a lot of different configurations which will only bother you if I posted them all, so I hope you don't mind if I just ask the simple question: how do I get this to work?
I think I'm missing the smallest detail right now, so a detailed description of how to get started would be welcome.
If the OpenCV installer did the job, you should have by now OpenCV libraries and headers already installed in your system.
I would then go ahead and try to compile a hello world basic code, like the one you can get from here. If you would like to program using an IDE, like VisualC++ in Windows, you can follow this guide that will help you setting up the environment.
OpenCV team just introduced their new web site. There you can find Introduction to OpenCV section with installation instructions, including detailed instructions for Windows. Don't forget to cleanup your system before installation to avoid problems with mixing different install options. If you still can't get it working with CodeBlocks, follow Dan's advice and try compiling from command line.
When you are done with installation, go on and read there great new tutorials!