title: Mat type is same but I get "Pushed vector type is not the same as matrix type in function 'push_back' " error
body: <p>I'm trying to reshape the sift descriptor matrix I get into one line and then push it back to another matrix but I get this error <strong>Pushed vector type is not the same as matrix type in function 'push_back'</strong>.</p>
  <p>this is my code:</p>
  <pre><code>Mat get_featuesunclustered( Mat input)
  {
    if(!input.data)
      {
        cout &lt;&lt; &quot;Image not found !!!&quot; &lt;&lt; endl &lt;&lt; endl;
      }
    
    //To store the keypoints that will be extracted by SIFT
    vector&lt;KeyPoint&gt; keypoints;
  
    //To store the SIFT descriptor of current image
    Mat descriptor;  
  
    //The SIFT feature extractor and descriptor
    Ptr&lt;SIFT&gt; detector = SIFT::create();
      
    //detect feature points and compute the descriptors for each keypoint
    detector-&gt;detectAndCompute(input, noArray(), keypoints, descriptor);
  
    if (descriptor.type() != CV_32F)
      {
        descriptor.convertTo(descriptor, CV_32F);
      }
    
    return descriptor;
  }
  
  int main(){
    Mat dicodescriptor,labels, feats;
    vector&lt;Mat&gt; dico; // dico contains images
  
    for(size_t y = 0; y &lt; dico.size(); y++)
        {
           dicodescriptor = get_featuesunclustered(dico[y]);
        
           Mat f = dicodescriptor.reshape(dicodescriptor.rows * dicodescriptor.cols, 1);
           feats.push_back(f);    
        }
  }
  
  </code></pre>
  <p>I don't know what wrong with my code, someone can help please ?</p>