На С++ будет работать быстрее(если правильно написать).
На C# будет проще написать и быстрее написать.
Я бы для такой задачи выбрал бы связку на C#:
1)sqllite или mssql express в качестве бд. Sqllite если все данные хранятся локально.
2) Для работы с бд в c# есть entity framework
3) В качестве библиотеки компьютерного зрения я бы выбрал EmguCv. (Почти тоже самое, что и OpenCVSharp, но документация лучше, поддерживается лучше и в общем информации больше)
4) Ну и в качестве интерфейса можно использовать winforms, хотя я бы написал на wpf
Обосновать такой выбор можно сокращением времени разработки.
По вопросу 1: Если бы это был реальный проект, то скорее всего часть для обработки изображений была бы написана на c++, а интерфейс на c#+wpf или с помощью какого нибудь фрейм ворка типа react.