


Opérations de lecture et d'écriture de données de fichiers OpenCV cv.Mat et .txt
Cet article présente principalement les opérations de lecture et d'écriture des données des fichiers OpenCV cv.Mat et .txt. Maintenant, je le partage avec vous et le donne comme référence
1. La lecture et l'écriture
peuvent être implémentées à l'aide de cvSave et cvLoad. Le format est similaire à .xml/.yml. Cependant, si vous vous consacrez à la lecture et à l'écriture de données avec OpenCV, il est préférable d'utiliser le fichier .xml/.yml. format. Je préfère le format .yml, la lisibilité est excellente.
Utilisez cvSave et cvLoad pour lire et écrire des fichiers .txt. La méthode d'implémentation et le format des données sont fondamentalement les mêmes que ceux des fichiers .yml.
Par exemple : cvSave("camera_matrix.txt",camera_matrix); //Enregistrez l'en-tête du tableau de camera_matrix et les données auxquelles il fait référence (un fichier similaire au format yml)
2. autres Les données du fichier .txt du programme
peuvent être implémentées à l'aide de sprintf_s et fprintf_s conventionnels, mais l'efficacité est relativement faible. Voici une méthode rapide et facile à utiliser qui utilise steam et vector de std.
#include <iostream> #include <fstream> #include <iterator> #include <vector> using namespace std; /*---------------------------- * 功能 : 将 cv::Mat 数据写入到 .txt 文件 *---------------------------- * 函数 : WriteData * 访问 : public * 返回 : -1:打开文件失败;0:写入数据成功;1:矩阵为空 * * 参数 : fileName [in] 文件名 * 参数 : matData [in] 矩阵数据 */ int WriteData(string fileName, cv::Mat& matData) { int retVal = 0; // 打开文件 ofstream outFile(fileName.c_str(), ios_base::out); //按新建或覆盖方式写入 if (!outFile.is_open()) { cout << "打开文件失败" << endl; retVal = -1; return (retVal); } // 检查矩阵是否为空 if (matData.empty()) { cout << "矩阵为空" << endl; retVal = 1; return (retVal); } // 写入数据 for (int r = 0; r < matData.rows; r++) { for (int c = 0; c < matData.cols; c++) { uchar data = matData.at<uchar>(r,c); //读取数据,at<type> - type 是矩阵元素的具体数据格式 outFile << data << "\t" ; //每列数据用 tab 隔开 } outFile << endl; //换行 } return (retVal); } /*---------------------------- * 功能 : 从 .txt 文件中读入数据,保存到 cv::Mat 矩阵 * - 默认按 float 格式读入数据, * - 如果没有指定矩阵的行、列和通道数,则输出的矩阵是单通道、N 行 1 列的 *---------------------------- * 函数 : LoadData * 访问 : public * 返回 : -1:打开文件失败;0:按设定的矩阵参数读取数据成功;1:按默认的矩阵参数读取数据 * * 参数 : fileName [in] 文件名 * 参数 : matData [out] 矩阵数据 * 参数 : matRows [in] 矩阵行数,默认为 0 * 参数 : matCols [in] 矩阵列数,默认为 0 * 参数 : matChns [in] 矩阵通道数,默认为 0 */ int LoadData(string fileName, cv::Mat& matData, int matRows = 0, int matCols = 0, int matChns = 0) { int retVal = 0; // 打开文件 ifstream inFile(fileName.c_str(), ios_base::in); if(!inFile.is_open()) { cout << "读取文件失败" << endl; retVal = -1; return (retVal); } // 载入数据 istream_iterator<float> begin(inFile); //按 float 格式取文件数据流的起始指针 istream_iterator<float> end; //取文件流的终止位置 vector<float> inData(begin,end); //将文件数据保存至 std::vector 中 cv::Mat tmpMat = cv::Mat(inData); //将数据由 std::vector 转换为 cv::Mat // 输出到命令行窗口 //copy(vec.begin(),vec.end(),ostream_iterator<double>(cout,"\t")); // 检查设定的矩阵尺寸和通道数 size_t dataLength = inData.size(); //1.通道数 if (matChns == 0) { matChns = 1; } //2.行列数 if (matRows != 0 && matCols == 0) { matCols = dataLength / matChns / matRows; } else if (matCols != 0 && matRows == 0) { matRows = dataLength / matChns / matCols; } else if (matCols == 0 && matRows == 0) { matRows = dataLength / matChns; matCols = 1; } //3.数据总长度 if (dataLength != (matRows * matCols * matChns)) { cout << "读入的数据长度 不满足 设定的矩阵尺寸与通道数要求,将按默认方式输出矩阵!" << endl; retVal = 1; matChns = 1; matRows = dataLength; } // 将文件数据保存至输出矩阵 matData = tmpMat.reshape(matChns, matRows).clone(); return (retVal); }
Recommandations associées :
Lire le texte txt ligne par ligne sous python3.4.3 et Méthodes pour supprimer les doublons
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisez la commande pip pour installer facilement le didacticiel OpenCV, qui nécessite des exemples de code spécifiques. OpenCV (OpenSource Computer Vision Library) est une bibliothèque de vision par ordinateur open source. Elle contient un grand nombre d'algorithmes et de fonctions de vision par ordinateur, qui peuvent aider les développeurs à créer rapidement des images. et applications liées au traitement vidéo. Avant d'utiliser OpenCV, nous devons d'abord l'installer. Heureusement, Python fournit un outil puissant pour gérer les bibliothèques tierces.

1. Base théorique de la pyramide d'images La pyramide d'images est une sorte d'expression d'images à plusieurs échelles. Il s'agit d'une structure efficace mais conceptuellement simple pour expliquer des images à plusieurs résolutions. Une pyramide d’images est une collection d’images avec des résolutions progressivement inférieures disposées en forme de pyramide et dérivées de la même image originale. Il est obtenu par échantillonnage en aval, et l'échantillonnage n'est arrêté que lorsqu'une certaine condition de terminaison est atteinte. Nous comparons les images couche par couche à une pyramide. Plus le niveau est élevé, plus l'image est petite et plus la résolution est faible. Alors pourquoi faisons-nous une pyramide d’images ? En effet, changer la taille des pixels ne change parfois pas ses caractéristiques. Par exemple, si je vous montre une image de 10 millions de pixels, vous pouvez savoir qu'il y a une personne dedans. Si je vous montre une image de 100 000 pixels, vous pouvez savoir qu'il y a une personne à l'intérieur. peut aussi savoir qu'il y a une personne dedans. Mais contre le plan.

OpenCV est une bibliothèque open source pour la vision par ordinateur et le traitement d'images, largement utilisée dans l'apprentissage automatique, la reconnaissance d'images, le traitement vidéo et d'autres domaines. Lors du développement à l'aide d'OpenCV, afin de mieux déboguer et exécuter des programmes, de nombreux développeurs choisissent d'utiliser PyCharm, un puissant environnement de développement intégré Python. Cet article fournira aux utilisateurs de PyCharm un didacticiel d'installation pour OpenCV, avec des exemples de code spécifiques. Première étape : installer Python Tout d’abord, assurez-vous que Python est installé

1. Effet du projet 2. Processus de base 1. openCV lit le flux vidéo et dessine un rectangle sur chaque image de l'image. 2. Utilisez Mediapipe pour obtenir les coordonnées des points clés des doigts. 3. En fonction de la position des coordonnées du doigt et de la position des coordonnées du rectangle, déterminez si la pointe du doigt est sur le rectangle. Si c'est le cas, le rectangle suivra le mouvement du doigt. 3. Préparation de l'environnement du processus de code : python:3.8.8opencv:4.2.0.32mediapipe:0.8.10.1 Remarque : 1. Si la version opencv est trop élevée ou trop basse, certains problèmes peuvent survenir, tels que la caméra ne peut pas être ouverte, des plantages , etc. La version python affecte les versions facultatives d'opencv. 2. pipinstallmediapipe peut provoquer une opération

Le package org.opencv.imgproc de la bibliothèque JavaOpenCV contient une classe appelée Imgproc qui fournit diverses méthodes pour traiter les images d'entrée. Il fournit un ensemble de méthodes pour dessiner des formes géométriques sur des images. Pour tracer une ligne fléchée, vous devez appeler la méthode arrowedLine() de cette classe. La méthode accepte les paramètres suivants : un objet Mat représentant l'image sur laquelle la ligne doit être tracée. Un objet Point représentant deux points entre des lignes. draw. Un objet scalaire représentant la couleur de la ligne. (BGR) Un entier représentant l'épaisseur de la ligne (par défaut : 1). Exemple importorg.opencv.core.Core;importation

Comment implémenter le traitement vidéo à l'aide de PHP et de la bibliothèque OpenCV ? Résumé : Dans les applications technologiques modernes, le traitement vidéo est devenu une technologie importante. Cet article expliquera comment utiliser le langage de programmation PHP combiné à la bibliothèque OpenCV pour implémenter certaines fonctions de traitement vidéo de base et joindra des exemples de code correspondants. Mots clés : PHP, OpenCV, traitement vidéo, exemples de code Introduction : Avec le développement d'Internet et la popularité des smartphones, le contenu vidéo est devenu un élément indispensable de la vie des gens. Cependant, pour réaliser le montage vidéo et

Segmentation et extraction d'images : les objets de premier plan sont segmentés ou extraits des images en tant qu'images cibles. L'arrière-plan lui-même n'est pas intéressé. L'algorithme du bassin versant et l'algorithme GrabCut segmentent et extraient l'image. Utilisez l'algorithme de bassin versant pour réaliser la segmentation et l'extraction d'images. L'algorithme de bassin versant compare de manière éclatante les images aux surfaces géographiques du terrain pour réaliser la segmentation d'image. Principe de l'algorithme Toute image en niveaux de gris peut être considérée comme une surface de terrain géographique. Les zones avec des valeurs d'échelle de gris élevées peuvent être considérées comme des sommets de montagne, et les zones avec des valeurs d'échelle de gris faibles peuvent être considérées comme des vallées. L'image de gauche est l'image originale et l'image de droite est la « surface topographique » correspondante. Ce processus sépare l'image en deux ensembles distincts : les bassins versants et les lignes de partage des eaux. Le barrage que nous avons construit est la ligne de partage des eaux, c'est-à-dire l'image originale

PyCharm est un puissant environnement de développement intégré (IDE) Python développé par JetBrains. Il fournit une multitude de fonctions et d'outils pour aider les développeurs Python à écrire du code, à déboguer des programmes et à gérer des projets. En utilisant OpenCV, une puissante bibliothèque de vision par ordinateur, dans PyCharm, vous pouvez facilement effectuer un traitement d'image, un traitement vidéo et d'autres tâches. Cet article détaillera les étapes d'installation et de configuration d'OpenCV dans PyCharm et fournira des exemples de code spécifiques. 1.Un
