Convertir Tapis de vector <float> Vector<float> tapis de opencv
je veux Convertir Tapis de vecteur et le Vecteur pour tapis dans opencv .
mon code :
void mat_to_vector(Mat in,vector<float> &out){
for (int i=0; i < in.rows; i++) {
for (int j =0; j < in.cols; j++){
//unsigned char temp;
//file << Dst.at<float>(i,j) << endl;
out.push_back(in.at<float>(i,j));
}
}
}
void vector_to_mat(vector<float> in, Mat out,int cols , int rows){
for (int i=rows-1; i >=0; i--) {
for (int j =cols -1; j >=0; j--){
out.at<float>(i,j) = in.back();
in.pop_back();
//file << Dst.at<float>(i,j) << endl;
//dst_temp.push_back(Dst.at<float>(i,j));
}
}
}
Codes ci-dessus sont lents.
sont il plus rapide des solutions?
OriginalL'auteur user3088563 | 2014-01-07
Vous devez vous connecter pour publier un commentaire.
Je pense que mon code sera utile pour vous:
est-il d'autres solutions pour vector_to_mat(vector<float>, Mat,int cols , int lignes) ???
Vous pouvez utiliser ce constructeur: template<typename T, int n> explicite Mat::Mat(const Vector<T, n>& vec, bool copyData=true)
J'ai utilisé n'a pas fonctionné de nouveau.
Ressemble aussi besoin de vérifier la
m.isContinuous()
OriginalL'auteur Andrey Smorodov
C'est comment je le fais. La première fonction est inspiré par https://stackoverflow.com/a/26685567 . La sortie de VectorToMat est dans le CV
_8U.
OriginalL'auteur Daniel Moskovich