Cronus Cross-over Gaming DeviceXBee Explorer DongleINSTEON 2242-222 Hub

Empty BookA few days ago, I posted the question asking you guys what you thought would be a good idea for a book for me to write. Well, the votes are in. I’m still having problems getting you guys to post your replies in the comments. But, I did receive plenty of emails with your opinions and ideas. Although there were some really interesting ideas submitted, the majority of you guys suggested a book about working with OpenCV using C#. Just like this site, you guys would like to have a full featured book that contains real-world, working applications with complete source code. So, your wish is granted.

I have already begun laying out what I believe should be in the book. I’m sure this list will change by the time I’m finished with the book, but it should be a good start. Plus, many of the chapters listed below will contain sub-sections that will drill down to more indepth explanations. Here are the chapters I’ve picked so far.

  • Disclaimer
  • Introduction
  • Chapter 1 – Getting Started with OpenCV
  • Chapter 2 – Loading Files into OpenCV
  • Chapter 3 – Accessing the USB Webcam
  • Chapter 4 – Using OpenCV in Windows Forms
  • Chapter 5 – Recording Video with OpenCV
  • Chapter 6 – Simple Motion Detection
  • Chapter 7 – Working with Haar Classifiers
  • Chapter 8 – Corner Detection
  • Chapter 9 – Edge Detection
  • Chapter 10 – Skin Detection
  • Chapter 11 – Head Tracking
  • Chapter 12 – Face Recognition
  • Chapter 13 – Eye Tracking
  • Chapter 14 – Template Matching
  • Chapter 15 – Augmented Reality
  • Chapter 16 – Haar Training
  • Appendix

Even though I’m already spread thin with having a full-time day job, working on a startup, owning &running a web design & hosting company, maintaining this blog, and working several side contracts, I’m still going to work in time to work on this book. I’ve waited long enough to take on something like this and actually see it through. So, I’m no longer going to make excuses, I’m just going to get it done for that sense of self satisfaction. And, while I’m at it, hopefully provide something that helps you learn how to work with OpenCV using C# without having to fight thru all of the headaches I had to when I first learned.

If you have any questions or suggestions about my book, please leave them in the comments below. Also, if you have an idea for the title of this book, leave those suggestions in the comments below. If I choose to use your suggestion, I will make sure to give you full credit for the idea on the very first page of the book. So, put on your thinking caps and leave your comments below.

If you enjoyed this post, please consider making a donation.

Related Posts

Tagged with:  

12 Responses to My New Book – OpenCV with C#

  1. abbid_siddiqui says:

    Hi Lucus
    Is that book complete? if yes, what’s its title and how it can be available for us? Please also reply comment on your “Eye Tracking” article.


    • LuCuS says:

      No. I’m just now starting to write the book. I haven’t come up with a title for it yet. If you have an idea for the title, feel free to let me know. As I mentioned in the article, if I choose to go with the book title you come up with, I’ll give you full credit for it on the very first page in the book. So far I have the introduction finished. The intro basically explains who I am, what I do, why I’m writing the book, and explains what computer vision is. I’m also pretty far into the first chapter. It explains what OpenCV is, where to get it, how to install it, etc… I’m hoping it won’t take too long to complete. I’m going to try to get at least 1 chapter complete per week. But, we’ll see how that works out. :-)

      • karimmahmoud says:

        can i get this book if you complete it ,as it will be more helpful for me

        • LuCuS says:

          Sure thing. However, I’m not sure when I’ll be able to finish it as I’m wrapped up in a startup at this moment. I hope to have the book finished by the end of this year. Kinda had to put the fun stuff on hold and focus on the stuff that pays the bills. :-)

  2. mattyaratty says:

    Hello Lucas
    I have been having a look online and i have not been able to find anywhere using c# and opencv, they all say using c++. As you are the only one i have found with using c#, i was hoping you would be able to help me out with how you use c# with opencv.

    • LuCuS says:

      I’ll try my best. What are you wanting to do with OpenCV? On the right side of this page, scroll down to Categories and click on OpenCV. There you will find several articles I have written that include example code. If those don’t help, please post some specifics of what you’re trying to do and I’ll do what I can to help out.

      • mattyaratty says:

        I am doing a project with the Kinect in c# where i want it to recognize certain objects, so far i save a image every second. Now i want to use openCV to use the template matching features to see if the desired object is on screen.

        The main problem i am having is installing openCV, i have followed several articles online with no luck from any and i am using VS10 express. (if you have any guides or tips on how to install openCV, I would be extremely grateful)

        Once i have that working i would like to use openCV in a C# environment, everywhere i look it only shows C++, you are the only one i have come across that uses openCV in C#. So i was hoping you would be able to say how you use openCv within C#?

        Once i fina

        I am wanting to use opencv to use image recognition. i am doing this project with the kinect,

        • LuCuS says:

          No problem. For working with OpenCV using C#, you will need to use any of the several wrappers that are out there. A lot of my readers like using Emgu ( Although Emgu is extremely nice, I prefer to work with OpenCvSharp ( To get started with OpenCvSharp, go to my article called “OpenCV Edge Detection and Video Capture with C#” ( At the bottom of that article, you will see a link where you can download my example app. It already has the OpenCvSharp and OpenCV files in it. Open that application and replace the code in Program.cs with the following:

          using System;
          using OpenCvSharp;

          namespace OpenCV
          class Program
          static void Main()
          CvCapture cap = CvCapture.FromCamera(1);
          CvWindow w = new CvWindow("Template Matching");

          IplImage tpl = Cv.LoadImage("speedlimit55.jpg", LoadMode.Color);

          CvPoint minloc, maxloc;
          double minval, maxval;

          while (CvWindow.WaitKey(10) < 0)
          IplImage img = cap.QueryFrame();
          IplImage res = Cv.CreateImage(Cv.Size(img.Width - tpl.Width + 1, img.Height - tpl.Height + 1), BitDepth.F32, 1);
          Cv.MatchTemplate(img, tpl, res, MatchTemplateMethod.CCoeff);

          Cv.MinMaxLoc(res, out minval, out maxval, out minloc, out maxloc, null);
          Cv.Rectangle(img, Cv.Point(minloc.X, minloc.Y), Cv.Point(minloc.X + tpl.Width, minloc.Y + tpl.Height), CvColor.Red, 1, 0, 0);

          w.Image = img;


          In the code above, you’ll notice that I reference an image called “speedlimit55.jpg”. You can get that file from my article called “Template Matching with OpenCV and C#” found at Make sure you checkout that article as I explain a lot about template matching. If you have any problems, let me know and I’ll put together a quick app to help get you started. BTW, the code I just gave you looks for the image in a live video feed. It can easily be modified to locate the object in images on your file system instead if that’s the behavior you’re looking for.

  3. says:

    hiii… can u pls tell me d easiest way to install and run pograms in opencv? i am having lotsa difficulties… setting d paths for opencv, configuring cmake and so on…pls guide. thnk u

Leave a Reply