2010-02-15 3 views
0

Une image à canal unique est mon entrée. (defalut IPL_DEPTH_8U)opencv: exécution interrompue à l'arithmétique à double pointeur pour l'accès aux pixels de l'image

Je multiplie chaque pixel de mon image d'entrée par des nombres scalaires à virgule flottante comme 2.8085 (dans le cadre de mon algorithme).

Donc cela me faut augmenter la profondeur et changer le type d'image à IPL_DEPTH_64F

Mais chaque fois que je suis en train de changer mon image type de données à IPL_DEPTH_64F et un double * pour accéder à chaque pixel, mon exécution du programme arrête brusquement , cribbing que "file.exe ne fonctionne plus, même si le programme ne fonctionne plus."

Cela signifie-t-il que mon processeur n'est pas capable de gérer l'arithmétique double ptr ???

+0

Avez-vous essayé d'exécuter votre programme sous un débogueur? –

Répondre

1

Vous devez créer une nouvelle image - Je vous recommande de faire une nouvelle image de profondeur IPL_DEPTH_64F et de régler chaque pixel à la valeur appropriée (valeur 2.8085 *).

De même, pouvez-vous poster le code que vous avez utilisé?

+0

U avaient raison. Il était plus facile de créer une nouvelle image de 64depth, puis de faire un cvconvertscale plutôt que le typecasting de pointeur. –

+0

Le codage de type pointeur n'aurait pas fonctionné puisque la mémoire allouée aurait été 'sizeof (uchar) * heigh * width' pour' IPL_DEPTH_8U' – Jacob

Questions connexes