I recommend coursera - i am currently doing this course https://www.coursera.org/learn/machin... But you can also learn from the internet yourself. I still recommend this course as this topic is not trivial.
First of all - what is a classifier?
A piece of software which puts the input data into different distinct categories (also called classes or labels or target values)
The thing is - you want your classifier to be generic . You most likely want to classify a car as a car regardless if its blue , green or black. Or having different height, amounts of doors etc.
A way to archive this is to train on different training sample which should have these variations.
Template matching in opencv is the opposite of being generic. It will match exactly the input image but misses all the variations(height, width, blur, color, etc...).
So if you don't have these variations you are fine to use template matching for classification but its an unusual way to do
it and most likely it will fail for your use case?!
So what to do: Learn how to use a neuronal network for image classification. There are tons of tutorials for different network "frameworks" (tensorflow, pytorch, yolo). Just pick one - if you are funny you can also use opencv to run them - but this goes to far right now.
please do a course in computer-vision and machinelearning first. (this will answer all questions above, and sorry, it's not the purpose of this site to replace it)