2016-02-29 5 views
1

quelqu'un peut-il expliquer comment créer un tapis binaire avec des valeurs d'une chaîne de bits?Comment créer un tapis à partir de bits dans opencv pour Java?

Par exemple, Je veux créer mon tapis de bitstrings 11110000 et 01010101, j'ai donc un objet de tapis avec 2 lignes et 1 Colum.

Pour cela, j'initialiser le tapis-objet avec Mat mat = new Mat(2,1,CvType.CV_8UC1);

Puis-je convertir ces chaînes à un tableau d'octets et d'utiliser mat.put(0,0,bytearray) ou est-il quelque chose que je dois consi? Plus tard je veux utiliser cette approche pour créer mon propre binary descriptor qui peut comparer avec d'autres descripteurs, extrait par ÒRB. Avec norm(descA,descB,NORM_HAMMING)

merci et meilleures salutations

Répondre

0

Vous pouvez utiliser Byte.parseByte() avec un radix de 2 par exemple byte b = Byte.parseByte(str, 2); d'abord le convertir en byte puis créer un tableau d'octets et il secrète pour Mat objet comme ci-dessous:

Mat mat = Imgcodecs.imdecode(new MatOfByte(byteArray), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED); 
+0

imdecode n'est pas correct ici. – sturkmen

+0

Pourquoi pouvez-vous me dire la raison, j'ai développé des applications qui utilisent cette ligne de code et en cours d'exécution sur le serveur, je copie et colle cette ligne de code de mon projet, donc cela signifie que c'est OK! –

+1

penser à la signification de décoder. il n'y a pas de données à décoder ici. peut-être vous l'utilisez dans votre code pour décoder une donnée d'image par exemple un jpeg – sturkmen