Mehran Maghoumi

Author's posts

Jan 02

OpenGL not Found, “cannot find -lGL”, and Other Issues with NVIDIA Drivers

Under Ubuntu,¬† sometimes when the NVIDIA drivers are installed, CMake cannot properly find OpenGL (specifically libGL.so). As a result, linking issues may occur. The easiest fix for this is to first create a symlink of nvidia-current to nvidia-xxx where xxx is the version of the current NVIDIA driver installed (e.g. nvidia-387) . Then create a …

Continue reading

Jul 27

Regional and Locale Settings Affects Parsing Decimal Strings in C#

Yesterday, someone who was trying to use Jackknife, our gesture recognition library, reported that he couldn’t reproduce our results with our C# code. Naturally, we started looking into the issue. Strangely enough, the code worked fine for me (both Debug and Release configurations). I then built the code under multiple versions of Visual Studio, tried …

Continue reading

Jul 17

Orthonormalize a Rotation Matrix

If you use a 3×3 R matrix to store the result of the multiplication of a series of rotation transformations, it could be the case that sometimes you end up with a matrix that is not orthonormal (i.e. det(R) != 1 and R.R’ != eye). In such cases, you need to re-orthonormalize the rotation matrix, …

Continue reading

Jun 26

Visual Studio Setup Blocked or Can’t Uninstall

For some reason a Visual Studio 2015 Community Edition installation I had on one of my machines was experiencing problems: solution files were not loading properly, and what’s worse is that installation instance had gone totally missing from “Uninstall a Program” in Windows Control Panel. Also, every time I tried running the setup file vs_community.exe …

Continue reading

Apr 08

Practical Kinect Stereo Calibration for the Highest Accuracy

I’ve been meaning to write up this post for a while, but I’ve been putting it off ūüôā The release of the Kinect sensor by¬†Microsoft spawned a plethora of research in¬†robotics, computer vision and many other fields. Many of these attempts involved¬†using Kinect for purposes other that what it was originally meant for! That pretty …

Continue reading

Apr 08

Computing the Distance Between a 3D Point and a Pl√ľcker Line

In order to solve an optimization problem with the goal of reducing the distance between a bunch of 3D points and lines,¬†I was looking for the correct way of finding the distance between 3D points and a Plucker line representation. The Plucker line ¬†passing through two lines ¬†and ¬†is defined as (for more details refer …

Continue reading

Nov 04

Tracking down BadImageFormatException in C#

I know It’s been quite some time since my last post, but what can I say? I’ve been quite busy ūüôā Here¬†is the latest issue that I got stuck on for a few hours, and I thought I’d share what worked in the end. I was working on a large C# project that had a …

Continue reading

Apr 09

librealsense with ARM support

Recently, I was able to successfully use RealSense R200 on my NVIDIA Jetson TX1 with librealsense. I had to replace some SSSE3 instructions in the code to get it to compile under ARM. I created a fork of librealsense on¬†Github with all the changes I made. Check it out here:¬†ttps://github.com/Maghoumi/librealsense R200 works at 60 FPS …

Continue reading

Mar 19

Create Bootable USB Flash Drive from ISO Image (with UEFI Support)

Update:¬†If you’re looking for Windows 10 UEFI installation, take a look at the¬†addendum at the end of the post! Although there are a lot of applications for creating a bootable flash drive using an ISO image (such as UNetBootin), not many of them support the creation of a bootable flash drive that can be used …

Continue reading

Mar 10

Align Depth and Color Frames – Depth and RGB Registration

Sometimes it is necessary to create a point cloud from a given depth and color (RGB) frame. This is especially the case when a scene is captured using depth cameras such as Kinect. The process of aligning the depth and the RGB frame is called “registration” and it is very easy to do (and the …

Continue reading