It will be a simpler task if you only have to detect which of a few simple shapes is in view.
You can tell the difference between triangle, square and circle (for example) just by measuring the ratio of perimeter to surface area. You can get those values from "blob labelling". See OpenCV FindContours()
Can you colour the objects? [ETA] if you can then you can threshold pixels by RGB (or HSI or LAB values) which cen be simpler than working with shaepes.