Estoy tratando de usar la function imread()
OpenCV para cargar una image JPEG en un cv::Mat
, pero falla en iOS (el mismo código funciona en OS X). La matriz devuelta se asigna y es válida, pero está vacía (es decir, no contiene datos).
¿Funcionan las funciones imread()
y imwrite()
en iOS?
Funciona, al less cuando guarda y carga hacia y desde el directory de documentos de su aplicación en ejecución.
//Creating Path to Documents-Directory NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"ocv%03d.BMP", picNum]]; const char* cPath = [filePath cStringUsingEncoding:NSMacOSRomanStringEncoding]; const cv::string newPaths = (const cv::string)cPath; //Save as Bitmap to Documents-Directory cv::imwrite(newPaths, frame);
iOS define su propio sistema de files y no creo que la interfaz imread () y imwrite () con él. Debe usar la funcionalidad nativa para cargar y save las imágenes, pero una vez que obtenga un puntero a los datos de la image, puede envolverlo en un cv :: Mat y luego procesarlo en opencv. No debería ser difícil escribir tus propias funciones cv_imread (), cv_imwrite () para iOS.
Esto funciona para mí al cargar imágenes desde el package de aplicaciones.
NSString *path = [[NSBundle mainBundle] pathForResource:@"pattern" ofType:@"bmp"]; const char * cpath = [path cStringUsingEncoding:NSUTF8StringEncoding]; Mat img_object = imread( cpath, CV_LOAD_IMAGE_GRAYSCALE );
Solo pude conseguir que funcionara con bmps, jpgs y png no funcionarán por ahora en mi aplicación.
Hay una function nativa para esto.
#import <opencv2/imgcodecs/ios.h> // t and m are UIImage* instances. // transparentImage and maskImage are destination Mat. // true/false is alpha condition. UIImageToMat(t, transparentImage, true); UIImageToMat(m, maskImage, true);
Intente cambiar los Compress PNG Files - Packaging
Configuración de Compress PNG Files - Packaging
a No
Build Settings
objectives Build Settings
png
Compress PNG Files
a No
Remove Text Metadata From PNG Files
a No