NSImage et camera
orfait
Membre
Bonjour,
Je ne trouve pas beaucoup d'informations sur le moyen de récupérer facilement une image provenant d'une source vidéo telle que Isight ou autre caméra (USB ou FireWire), pour ensuite la mettre dans un NSImageView.
A chaque fois que je trouve des informations, il faut passer par QTKit qui me semble surtout orienté vidéo ou alors utiliser Quartz Composer.
Donc si vous avez une suggestion à me faire, n'hésitez pas !
Je ne trouve pas beaucoup d'informations sur le moyen de récupérer facilement une image provenant d'une source vidéo telle que Isight ou autre caméra (USB ou FireWire), pour ensuite la mettre dans un NSImageView.
A chaque fois que je trouve des informations, il faut passer par QTKit qui me semble surtout orienté vidéo ou alors utiliser Quartz Composer.
Donc si vous avez une suggestion à me faire, n'hésitez pas !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
http://developer.apple.com/documentation/GraphicsImaging/index-date.html
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/ImageKitProgrammingGuide/IKImagePicker/chapter_6_section_1.html#//apple_ref/doc/uid/TP40004907-CH7-SW1
[picker beginPictureTakerSheetForWindow:[mImageView window] withDelegate:self didEndSelector:@selector(pictureTakerDidEnd:code:contextInfo:) contextInfo:nil];
au lieu de
[picker beginPictureTakerSheetForWindow:[mImageView window] withDelegate:self didEndSelector:@selector(pictureTakerValidate:code:contextInfo:) contextInfo:nil];
Quoique tu veuilles, tu devras passer par le QTKit !
En effet, c'est ce dernier qui gère les caméras (webcam, isight ou caméra dv).
Ce que tu veux faire est faisable mais complexe (du moins pour 10.4 et antérieur, car depuis 10.5, il y a un nouveau API que je n'ai pas encore étudié).
Donc, un petit sur la doc de ce API (mais aussi dans le guide associé) pour avoir quelques pistes...
.
Quelle est l'API en question ?
Je pense au nouveau framework QTCapture (voir ici), introduit sous Leopard.
.
J'avais aussi regardé cette page. Mais sans vraiment voir comment mettre en flux continu les données d'une camera dans un NSImageView.
Pour 1 photo oui, mais pour un flux de photos, non.
Je comprends maintenant que j'ai oublié une précision...
Je travaille sur du traitement d'image sur DSP et je veux en réalité faire une prévisualisation des algos que je code en C pour le DSP. Donc j'ai fait une fonction qui me met une NSImage convertie en N&B (suivant diverses formules) dans un tableau (unsigned char image[w][h] par exemple) et une autre qui remet un tableau résultat dans un NSImage. Entre les deux, je code mon algo en C.
Donc en gros, je cherche à traiter une image par clic sur un bouton et un flux d'image par clic sur un autre bouton.
J'espère que c'est assez clair...
Depuis 2 jours, j'essaie de retrouver le projet que j'avais fait pour tester ma webcam...
ça tournait sous 10.3 (donc logiquement aussi sous 10.4 voire 10.5 moyennant quelques deprecated).
La prise de la "photo" se faisait par clic sur un bouton pour afficher un NSImageView contenant la photo (mais en fait, en place de ce bouton, ça pourrait être un NSTimer qui à intervalle régulier créé un nouveau NSImage)...
Est-ce plutôt cette piste que tu veux exploiter ?
.
Si tu le trouves, je suis preneur mais ne te casse pas la tête si tu ne trouves pas.
Merci quand même pour vos propositions et aides, et désolé pour le dérangement qui aura été peut être inutile au final (sauf pour ma culture mais bon...)
J'ai de nouveau besoin de ce genre de système mais qui puisse se rapprocher de la vidéo (traiter 25-30 images/s).
Si quelqu'un peut m'aider...
Si la classe n'est pas proposée dans le menu déroulant pour changer la classe de ta NSView, tu peux faire glisser le framework QTKit (ou peut-être que tu es obligé de faire glisser les .h de ce framework, que tu vois quand tu déploies "QTKit.framework" dans le groupe "frameworks" dans ton projet Xcode, y'a un sous-dossier "Headers" qui apparait alors contenant les .h) sur ta fenêtre dans IB3 pour que ce dernier "en prenne connaissance" et les reconnaisse.
Par contre pour avoir ta classe WebCamView (ou peu importe son nom) dans la librairie c'est une autre affaire, il faudrait faire une IBpalette personnalisée contenant ces objets pour qu'ils soient proposés (à moins que qqun sur le net ait déjà réalisé cette palette pour placer des éléments de QTKit facilement dans IB en un mouvement dans ce cas il suffit de rajouter cette IBPalette à ton IB3)... mais bon sans cette palette tu peux toujours mettre ta CustomView et changer sa classe puis la paramétrer dans IB.
ADC Home > Reference Library > Guides > QuickTime > Cocoa > QTKit Capture Programming Guide >
Tu dois sans doute aussi importer le framework adapté
Merci !