Canny Edge Detection Auto Thresholding

In the example I gave in “Interfacing IPP with Magick++“, I illustrated how to use Intel’s Integrated Performance Primitives (IPP) to perform edge detection. One issue with Canny edge detection algorithm is that we need to specify a high threshold and a low threshold. How to select those threshold values affect the quality of the detected edge greatly. And in my previous example, the threshold values were chosen manually. In this blog post, I will examine a couple of simple methods that can be used to automatically determine the threshold values.
Read more…

Kubuntu 9.04 Test Drive

I was traditionally a KDE user till KDE 4.0 came along. While many users are excited about many of the new features (e.g. Widgets) added in KDE 4, I am simply no big fan of fancy user interfaces. So I have been using GNOME ever since. Of course the beauty of Linux is that running one windows manager does not prevent you from running applications native to another windows manager.
Read more…

The Jaunty Jackalope

Without much fanfare, Ubuntu 9.04 (Jaunty Jackalope) was released into the wild earlier today. But Ubuntu followers are wasting no time, overloading many of the official downloading sites.
Read more…

C++ IDEs Under Linux

So far I have been mainly using KDevelop and Code::Blocks as my C++ development IDEs. Recently, I started using NetBeans IDE for C++ and I started to like it quite a bit.
Read more…

How to Revert to a Specific SVN Version of Code::Blocks

I had set up my apt-get source to use latest SVN build of Code::Blocks. Everything has been running pretty smoothly until a couple of days ago when Code::Blocks was updated to SVN 5534.
Read more…

On Default Linux IO Priority

If there is any thing I think Linux distributions can definitely improve upon is to reduce the default IO task priorities while running a Windows manager (e.g. GNOME or KDE).
Read more…

An Image Class Based On IPP

A couple of weeks ago, I wrote about how to interface Integrated Performance Primitives (IPP) with Magick++. While IPP offers excellent performance advantages, it does not come with the easiest programming model. Fortunately, it is easy enough to create a C++ wrapper on top of IPP and provide an easier to use programming interface.
Read more…

Changing SyntaxHighlighter Font Size

After I upgraded to the latest SyntaxHighliger (2.0.296) I noticed that the font size of the code section is a little bit too small to my taste. But there is not an UI option to change it.
Read more…

The Obstacles to Linux Going Mainstream

It was almost one year ago when I switched my main home computer to Linux. Since then, I have been using my Ubuntu 8.04 installation daily and have not found the need to boot up Windows at all.
Read more…

My Favorite Linus Quote

Linus is famous for making radical and controversial statements. While a lot of these quotes sound harsh, they are profoundly true nevertheless.
Read more…

Interfacing IPP with Magick++

Intel’s Integrated Performance Primitives (IPP) is a low level C++ library. It provides routines that are highly optimized on Intel processors. I recently started using it because its vast speed advantage in signal and image processing applications.
Read more…

Matrix Multiplication Performance in C++

A few days ago, I ran across this article by Dmitri Nesteruk. In his article, he compared the performance between C# and C++ in matrix multiplication. From the data he provided, matrix multiplication using C# is two to three times slower than using C++ in comparable situations.
Read more…