As part of your question, you mentioned
"if I could do this using salesforce1 mobile app for iPhone/Android
with a visualforce page and access the camera"
This is possible to do using Visualforce if you are using the Mobile SDK container. As sfdcfox points out, mobile browsers current do NOT offer this capability - neither does Salesforce1.
On the other hand, the Mobile SDK internally uses Cordova (PhoneGap) to support features such as Camera.
You can then directly call Cordova method as shown below to invoke the camera
function takePic() {
navigator.camera.getPicture(onPicSuccess, onPicFail, { quality: 50});
}
Salesforce Developer Evangelist Sandeep Bhanot published this tutorial and this repo which explains how this approach works in detail.
Of course, this approach will NOT work if you are trying to use Salesforce1.