Since you already know c# you already know more syntax than there is in c++. There are very few c++ syntax elements that you'll need that are not also available in C#.
Here are the main areas where I think you see some challenges:
a) Many, many constructs in c# are simply not available in c++. I'm talking about language features not data types. i.e. Generic Collections, etc... while similar results can be obtained with c++ language features it is soooo much more work in c++
b) It's really the libraries/framework you choose that are going to be substantially different.
c) Why not mix the two. They both play well together. Do your image processing work in a c++ library but keep the work there to a minimum and wrap the whole thing in c# for consumption in a UI. Of course the interoperability will be another challenge but it is well documented on the web.
As far as good book goes... there is still none better than Steve McConnell's "Code Complete"
http://cc2e.com/
Good Luck.