The arduino is a pretty versatile piece of kit that can work alongside pretty much anything. I'd look at the fish identification process and work back to the appropriate hardware.
- How many possible species of fish are there in the lake? (The more fish, the more memory you'll need, and the more complex your software will be)
- Can these species clearly be told apart by size/weight? (If so, you may not necessarily need computer vision at all)
- Can the species be told apart simply by colour? (colour averaging will be significantly easier to process than differentiating finer details, less processing power required)
- How fast does this recognition need to occur? (imaging processing can be intensive, pick an appropriately fast system)
- Does the system need to be entirely self-contained / on-site? (If not, you could save time by sending the image to a remote computer over wireless/3G for processing)
- How small are the distinguishing features? (This will determine what camera resolution / number of cameras / lens you will need)
In terms of computer vision software, OpenCV should be high on your list.
If you have a good understanding of mobile app development, a smart phone could be appropriate (combined camera & computer, cheap, portable, relatively fast), combined with Google's ADK and you could pass resulting commands to actuators.
The list of hardware capable of running image processing software is rather large. Arduinos, Beaglebone/boards, mbeds, FPGAs, RaspberryPi, fitPC, NUCs, full-sized computers (ATX motherboards etc) and beyond. Up to you what works for your application and budget.
Have a look at some of the HD logitech web cams, for the price and resolution they deliver high frame rates and have support across a good few operating systems.