Problème de l'attribution des valeurs de Tapis de tableau dans OpenCV 2.3 - semble simple
En utilisant la nouvelle API pour OpenCV 2.3, j'ai du mal à attribuer une valeur à un Tapis de tableau (ou dire l'image) à l'intérieur d'une boucle. Voici l'extrait de code qui je suis aide;
int paddedHeight = 256 + 2*padSize;
int paddedWidth = 256 + 2*padSize;
int n = 266; //padded height or width
cv::Mat fx = cv::Mat(paddedHeight,paddedWidth,CV_64FC1);
cv::Mat fy = cv::Mat(paddedHeight,paddedWidth,CV_64FC1);
float value = -n/2.0f;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
fx.at<cv::Vec2d>(i,j) = value++;
value = -n/2.0f;
}
meshElement = -n/2.0f;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
fy.at<cv::Vec2d>(i,j) = value;
value++;
}
Maintenant dans la première boucle dès que j = 133, j'obtiens une exception qui semble être liée à la profondeur de l'image, je ne peux pas comprendre ce que je fais de mal ici.
Veuillez En Informer! Merci!
OriginalL'auteur | 2011-09-04
Vous devez vous connecter pour publier un commentaire.
Vous accédez à des données à 2 composants, double vecteur (à l'aide de
.at<cv::Vec2d>()
), mais que vous avez créé les matrices ne contiennent que 1 composant en double (à l'aide deCV_64FC1
). Soit créer les matrices de contenir deux éléments par élément (avecCV_64FC2
) ou, ce qui semble le plus approprié à votre code d'accès les valeurs simples, doubles, à l'aide de.at<double>()
. Ce n'explose exactement à j=133, parce que c'est la moitié de la taille de votre image et lorsqu'ils sont traités comme contenant du 2-composante des vecteurs lorsqu'il ne contient que 1, c'est seulement la moitié de sa largeur.Ou peut-être vous pouvez fusionner ces deux matrices en une seule, contenant deux composants par élément, mais cela dépend de la façon dont vous allez utiliser ces matrices dans l'avenir. Dans ce cas, vous pouvez aussi fusionner les deux boucles ensemble et vraiment les 2 composants du vecteur:
Cela peut produire un meilleur accès à la mémoire système si vous avez toujours besoin de ces deux valeurs, l'une à partir de fx et celui de l'af, pour le même élément.
OriginalL'auteur Christian Rau