We proposed a hybrid computer-vision framework that distinguishes different plant species (such as radish and weeds) that combines machine learning methods (such as Support Vector Machine (SVM) and Random Forest (RF) classifiers) with application-specific features and image processing methods such as our own plant leaf isolation algorithm. The designed features include geometrical features that are sensitive to plant shape, as well as moment- invariant and texture features. The accuracy obtained using the combination of the designed features, and the isolation algorithm was 81.1% using SVM and 88.4% using Random Forest. We used 10-fold cross-validation to illustrate the importance of designing and selecting good features. We compared our designs with generic deep neural networks. We also compared our features with other features, such as SURF features classification, and our methods were more robust and produced better results. Throughout, we used realistic images obtained in the field, where the quality of the images depends on many factors such as lighting, seasons, occlusions, etc. We therefore include a careful discussion of the difficulty of classification problems and its dependence on the quality of images, and we propose computable definitions of problem difficulty, robustness, level of corruption, and degree of performance degradation due to corruption in the context of precision agriculture.