How do I get started with image processing? [closed] - image

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am really interested in image processing. I downloaded OpenCV and started playing with it. But I think I lack the knowledge behind image processing. I would like to learn the basic fundamentals of image processing.
I searched for open course from MIT or other universities but didn't seem to find any good tutorial. I did find some slides, but they seem useless without the actually presentation. I searched for online tutorial but mostly they are not for beginners.
Is there a good online tutorial for image processing for beginners?

I recommend two books:
(1) R. C. Gonzalez and R. E. Woods, Digital Image Processing, 3rd ed. Prentice Hall, Aug. 2007.
(2) G. Bradski and A. Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library, 1st ed. O'Reilly Media, Oct. 2008.
Visit the OpenCV documentation to get updated reference to the OpenCV functions (the Learning OpenCV book uses version 1.0 but the current version is 2.3). You can buy cheap access to the digital version of the book using Safari Books.

I really like Rich Szeliski's Computer Vision book which has a nice mix of theory and practice. You can also access the electronic drafts for free.
Other good ones are Hartley and Zissermann's Multi-View Projective Geometry and David Forsyth's Computer Vision: A Modern Approach

Sometimes the old fashioned way is best. I'd start by looking at what books could help me learn the subject.

Reading books is IMO definitely the way to go here.
The Learning OpenCV book also contains background information about the image processing tasks that can be executed with OpenCV. It might be a nice way of learning to immediately put in practice what you learn and read.

The OpenCV Wiki actually lists a few books they recomend, including one from O'Riley which I have always found to be a good source for learning.

Alan Peters Lectures on Image Processing
http://www.archive.org/details/Lectures_on_Image_Processing
PDF files: http://ia700307.us.archive.org/7/items/Lectures_on_Image_Processing/
--
MIT OCW: Biomedical Signal and Image Processing

See page
This site has tutorials in pdf format explaining how to do basic image processing with Microsoft C# (which is free of charge from Microsoft).
It also introduces and explains the mathematical notation that you will find in image processing books.

Related

Best way to learn VHDL? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to learn VHDL but I really don't know from where to start.
I want some advice and explanation about the software I need to get started.
I would like also to get some references in order to learn it efficiently without wasting time by searching on the Internet, since there are a lot of e-books and tutorials and I'm really confused about which one to choose.
I suggest, you have good background in Digital Design. If not, start with any edition of "Digital Design" book or, alternatively "Contemporary logic design".
Download GHDL (VHDL compiler/simulator using GCC technology) or a little more friendly software tool boot.
Learn how to build a VHDL program with GHDL. Try to compile simple
"Hello, world!".
Learn VHDL syntax with the open-source book Free Range VHDL. It is very important step.
As others have said, you need to learn about digital design before learning VHDL. But don't let that scare you away, it isn't that hard. I believe you can get started very fast with VHDL if you get the books, board and software which I recommend below.
Learn about Digital Design
"Digital Design" by Frank Vahid is an excellent book for people who wants to learn about digital design from scratch. We used that book in an introduction course on digital design where we also got introduced to VHDL. You don't have to dig very deep into that book before you can start playing a bit with VHDL (this book doesn't teach any VHDL though).
I remember the book as being very 'reader-friendly'.
http://www.amazon.com/dp/0470044373/?tag=stackoverfl08-20
Buy a FPGA board!
Next you really need to buy or have access to a FPGA board, and some learning material that utilizes and explains about that particular FPGA board that you choose.
Even though I had access to a FPGA board at my university, I choose to buy a board so I also could play around with VHDL at home.
At university we used some virtex-pro Spartan-3E 100 MHz board (can't remember the exact name). And for home I bought the Nexys2 board which is also in the spartan-3E family, and is an excellent board for FPGA beginners IMO.
http://www.digilentinc.com/Products/Detail.cfm?Prod=NEXYS2
Learn VHDL
For VHDL we used the book "FPGA prototyping by VHDL examples" by Pong P. Chu, which is an excellent book for getting some experience with VHDL fast without having to read too many boring pages.
The book also introduce you to the 'Xillinx ISE' software.
http://www.amazon.com/FPGA-Prototyping-VHDL-Examples-Spartan-3/dp/0470185317
Software
For software we used Xillinx ISE, compatible with both Linux and Windows (I used it mostly in Linux). At university we used some old version of Xillinx ISE because the new version wasn't compatible with the virtex pro board. This was the worst piece of software I've ever used, it was full of bugs and it was driving everyone crazy!
BUT at home and on my laptop I used the newest version of Xillinx ISE which was a brilliant piece of software, and didn't have any annoying bugs. The only thing I didn't use Xillinx ISE for, was to transfer the synthesized VHDL (.bit files) to my board, for that I just used 'Digilent Adept software' (some small program made by Digilent, for transferring files to and testing the board). But it should also be possible to set up Xillinx to be able to transfer the synthesized VHDL, if you aren't lazy like me.
So if you want to use Xillinx ISE, be sure to buy a board that is compatible with the newer version of Xillinx ISE, to avoid too many head-aches. For example the Nexys2 board.
We also used some nifty tool for debugging, think it was ModelSim. This should also be included in the Xillinx ISE webpack download if I'm not wrong.
Link to Xillinx ISE:
http://www.xilinx.com/ise/logic_design_prod/webpack_faq.htm#2b
I am in a very similar situation. I discovered Free Range VHDL and am learning fast as I work through it. This book is an update of The Low-Carb VHDL Tutorial with exercises at the end of every chapter.
After completing the paper exercises, I plan to get an XuLA board from XESS. Dave Vandenbout has written an excellent tutorial referencing his XuLA board. This book complements Free Range VHDL as it discusses actual FPGA devices and practical issues such compilation, synthesis and software download. This book is also available from the Free Range Factory and I have found an earlier edition on this pdf.
Dave Vandenbout's site offers more hardware than the Free Range Factory, so it is worth checking out. I am based in Europe, so I will also be looking at Trenz Elektronik online shop.
The web page for the first part of this course (more specifically, the course literature, tools and links parts) contains a pretty good list of reading material and tools. The course doesn't offer any introduction to VHDL but is open to students with no prior VHDL experience even so, so learning on your own with the provided material works pretty well. (At least it did for me; YMMV.)
I recommend using a good VHDL IDE.
Sigasi is my favorite (disclaimer: I'm co-founder of Sigasi)

Ruby Video Tutorials [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I know nothing about ruby.
Do you know some beginner video tutorials for ruby? And also tutorials for Ruby Enterprise development?
There is a fun tutorial for ruby : Rails for Zombies
Learning Rails for the first time should be fun, and Rails for Zombies allows you to get your feet wet without having to worry about configuration. You'll watch five videos, each followed by exercises where you'll be programming Rails in your browser.
In addition, there a lot of casts about rails on railscasts.
It's not video, but it's a great resource that won't waste your time, "The Well-Grounded Rubyist Covering Ruby 1.9 David A. Black": http://www.manning.com/black2/
I've worked through the text using a MacBook, rvm, git, textmate, and iTerm, which are all good supporting tools IMHO.
rvm : https://rvm.io
git: http://git-scm.com/
textmate: http://macromates.com/
iTerm: http://iterm.sourceforge.net/
If you are ultimately aiming to try Rails as well, Michael Hartl's "Ruby on Rails Tutorial"
http://ruby.railstutorial.org/ is free on-line and is highly recommended. This includes a lot of fundamental Ruby teaching. There are accompanying screencasts that are $$$, but they are well reviewed.
Took me a while to stumble upon the excellent work of Black and Hartl, so I thought I'd share them here even though they are not video. They are the two highest yield sources that I have personally used for learning Ruby and they are likely to save you time.
hth,
Perry
There are some video tutorials on all the basics of the Ruby language over at http://manwithcode.com, but from his last post it seems that the site is probably dead. However the videos are still worth a watch, especially since they're free.
There are on www.tekpub.com, but for $$$. You can get monthly subscription for about 30$ I think.
I recommend this course http://net.tutsplus.com/sessions/ruby-for-newbies/
Also good course Ruby Essential Training but for money
Not sure if there are any beginner video tutorials for ruby. If you are a total newbie, I would recommend picking up a copy of Chris Pine's book Learn to Program http://pine.fm/LearnToProgram/
If you want to learn Rails, Michael Hartl's Rails Tutorial http://ruby.railstutorial.org/ is the best resource for any beginner who wants to learn Rails - in my opinion. It takes the reader through everything required to become a decent web-developer. The book is available for free on-line. There are 15 hours of screencasts as well to guide one through the tutorial. At $95, the PDF/screencast bundle is a steal!

What image editor do you recommend to create cool UI elements? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I sincerly believe that cool-looking UI has significant contribution to the value of your software. It not only significantly improves sales but also ease user-buyin, upgrading willingness, or just causes some pleasant moments to the user.
To get cool UI, you will need a lot of images, and you need to play frequently with transparancy.
Question 1: What image editor do you use/recommend to produce 3D looking images, metalic reflections, glowing text, shadows, or making a button image "disabled-looking"? (freewares are preferred)
Question 2: Could you point to "how-to"-s and guiding documents on how to achieve these visual effects?
The best image editor to achieve these effects is probably Adobe Fireworks, which definitely doesn't come under the freeware category at around £700 )and probably around $700 as well, although I haven't checked).
The best freeware editor in my opinion would be Paint.net.
However, I also think that you should seriously consider using the default UI components where available, as using non-standard widgets can significantly reduce the usability of your product.
I use Inkscape - it now has much more flexible control over gradients and opacity, which are key to creating good GUI elements.
We use Adobe illustator and Photoshop to create all of our Icons and Images, and when you know how to use it, you can make pretty good UI elements.
Paint.net is as a freeware good for bitmaps and icons (a mini photoshop).
but for icons i would recomend axialis icon workshop
Unless you have a budget, I like free so Inkscape is my vote too. There are plenty of tutorials on the web to help and once you learn a couple of usability points with it, it's a pretty easy application to use. Being vector based has benefits too as you can change images other people make pretty easily.
http://howto.nicubunu.ro/shiny_web_buttons_inkscape/
Depending on what platform you're using, you can use Expression Blend to edit your GUI controls in WPF (.NET 3.5 SP1) to look however you want.
Otherwise there's always Photoshop. :)
I use Paintshop, mostly. I have a copy of Inkscape for whatever needs to scale well.
Why has no one mentioned GIMP? It's free and very powerful. I can remember a webpage with amazing scripts to GIMP for every effect you asked for it. I am searching for it right now and will update the question with a link once I find it.

User Interface design books/resources for programmers [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm going to make my monthly trip to the bookstore soon and I'm kind of interested in learning some user interface and/or design stuff - mostly web related, what are some good books I should look at? One that I've seen come up frequently in the past is Don't Make Me Think, which looks promising.
I'm aware of the fact that programmers often don't make great designers, and as such this is more of a potential hobby thing than a move to be a professional designer.
I'm also looking for any good web resources on this topic. I subscribed to Jakob Nielsen's Alertbox newsletter, for instance, although it seems to come only once a month or so.
Thanks!
Somewhat related questions:
https://stackoverflow.com/questions/75863/what-are-the-best-resources-for-designing-user-interfaces
User Interface Design
Don't Make Me Think is the one!
Also check out Steve Krug's website for tips and sample forms for usability testing.
The design of everyday things ? An "old" classic, but useful if you plan anything that requires human interaction.
Joel Spolsky's User Interface Design for Programmers is at least entertaining, and a recommended read.
Tufte, Visual Display of Quantitative Information http://www.edwardtufte.com/tufte/
Don Norman, Design of Everyday Things http://www.jnd.org/
Although completely independent of web and programming, The Design of Everyday Things by Donald Norman taught me a lot!
For a less in-depth, more cook-book approach (if you don't want to think), try Robin Williams' The Non-Designer's Design Book: Design and Typographic Principles for the Visual Novice.
Presonally I much prefer The Design of Everyday Things.
Also take a look at Alan Cooper's About Face.
The Apple Human Interface Guidlines are great!
This is not directly related to GUI design or programming, but The Psychology of Everyday Things is a good book to read.
It is a general look at how things are designed and how they fail. The concepts in this book, although not directly applicable to GUI's, do apply. In fact you could say they apply to all instances of user centered design.
http://www.amazon.com/Psychology-Everyday-Things-Donald-Norman/dp/0465067093
AboutFace.3.0
The Essentials of Interaction Design would be good Idea to read
"Don't Make Me Think" is great. After sitting in on several usability studies I can safely say that several of his biggest points are the kinds of things drilled in your head over and over.
Joel Spolsky's book on user interfaces is also decent.
http://www.amazon.com/User-Interface-Design-Programmers-Spolsky/dp/1893115941
Additionally to the great hints given so far, also see the Windows User Experience Interaction Guidelines, as described in this interesting blog post by Kirill Osenkov.

Domain Specific Language resources [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I was just listening to some older .Net Rocks! episodes, and I found #329 on DSLs to be interesting. My problem is that I can't find any good online resources for people trying to learn this technology. I get the basics of the creating new designers, but the MS docs on the T4 engine used by the DSL tools and then how to integrate the templates with the DSL models are lacking.
Does anyone know of some good introductory resources for the MS DSL tools?
The architects of the DSL Tools team wrote a book, Domain-Specific Development with Visual Studio DSL Tools. The book's website has some other links and resources.
If you are interested in DSLs, Jeff Moser has written some great articles about them (and the 'meta' frame of mind you need) here, here, and here on his blog.
Martin Fowler is currently writing a book on DSL. Here is a presentation he gave on the topic.
For me the best source of T4 examples was this blog.
Since you're looking to the MS-world, you may want to look at F#. It offers the ability to extend its syntax to write domain specific languages (see this link, page 16 for sample code).
I found the following page with a number of webcasts very usefull:
http://msdn.microsoft.com/en-us/vsx/cc677256.aspx
A fantastic option for DSLs is Boo. I've been using it for things like setting up my IoC container, defining routes, validation rules. Ayende Rahien is writing an fantastic book on the subject for Manning called Building Domain Specific Languages in Boo
PODCAST: DSL Related Discussions in SE-Radio
Martin Fowler is writing a book on DSLs. You can read his work so far here http://www.martinfowler.com/dslwip/
I also went to a good presentation by Jay Fields (His slides are here).
I would recommend http://msdn.microsoft.com/en-us/vsx/cc677256.aspx for DSL Tools as a starter.
Also, check out the concept of MDSD (Model Driven Development).
An expert on that topic (and DSL's) is Markus Voelter: http://www.voelter.de/
I believe there are so many similarities between MDSD, Software Production Lines and DSL's in general that this 'new' way of doing things needs to clean up it's concepts.
That's one of the reasons why it's hard to find good information about the topic.
On another note, acm.org has an extensive digital library of research articles, articles from various conferences (such as OOPSLA), where you can find much information about DSL's, language designs, SPL, MDSD, and so forth.
Here's a few more websites that I find useful:
Advanced code generation patterns
DslFactoryUtilities
DslTools
For the Visual Studio DSL Tools (tooling to add graphical DSLs to Visual Studio), there's an introductory hands on lab here: http://code.msdn.microsoft.com/Visualization-and-Modeling-313535db
The homepage for the tooling with links to other samples is here: http://archive.msdn.microsoft.com/vsvmsdk

Resources