Can't find what you need? Try here:
Loading

Thursday, September 24, 2009

Image filtering, smoothing, canny edges

So here is the result of the last post - The current functionality of the application is filtering an image with a given filter and two specific filters - blurring and canny edge detector. Scroll to the right to see the resulting image (or just click here to go to the application)

Monday, September 7, 2009

Image Processing Web Application

I started recently getting into building web applications. Here is a beginner's experience with the issues involved:
My idea was to build some front-end for opencv so people from all around the web could play around with the functionality easily. The current state of my experimentation can be viewed here.
It doesn't use Opencv yet(I'm using ImageMAgick), for reasons I shall explain below.
Here's a list of things you need to set up for such an application:
  • A domain - typically these would cost at around 10$ for ordinary domains, I got mine from GoDaddy but there are endless places where you can do it.
  • What web application framework you want to use. As I see it the decision should be based on which programming language you feel most comfortable with. Languages like Java, Ruby, Python each have their own framework (I;m familiar with Ruby on rails and recently got introduced to Django for Python).
  • Hosting environment.When deciding where your application is going to run you should consider the following:
  1. What web application framework you are using. You should check that the hosting environment has full support for your framework - this includes looking for reviews and hearing what other people say and not just what the hosting provider says
  2. What are your computational and network load requirements. As a beginner I use shared hosting which is the cheapest (costs at around 100$/year) since I am not really sure about those issues yet. This means your server is shared with other users. The more expensive option is to have a dedicated server or use a cloud in which resources are dynamically allocated as needed by the application.
  3. The customer support offered by the hosting provider. Again, look around the web for reviews.
  4. Price
So as a starting point I had some minimal knowledge of Ruby on Rails(RoR), a domain I got some time ago from GoDaddy and a shared hosting plan also on GoDaddy (I think they are the cheapest,and for a good reason). This was a really bad experience - do NOT use GoDaddy. Their pages take ages to load and they are horrible in terms of support (at least for RoR - which they claim to support). After struggling for some days I gave up and came across BlueHost.
Up to this point I am extremely pleased with BlueHost. They are perfect as a cheap, shared hosting environment. They support Ruby on Rails, they have loads of documentation, and they have an online live customer support. Their administrator panel (the gui you use to manage you hosting stuff) is very user friendly and load without problem.
The only problem I have with them is the Python support which is rather minimal so I could not get opencv installed properly on their server. So for my experiment I used Rmagick which is a Ruby wrapper for ImageMagick and getting that up and running was rather straight forward without much complications.
My next step would be to get familiar with Django, which is the web application framework for Python, and find a hosting service which supports it (recommendations are welcome). Then continue with my original plan of doing something with Opencv.