gpt4 book ai didi

iphone - 将图像保存到 iPhone 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:45 25 4
gpt4 key购买 nike

我知道尝试使用 openCV 进行 iPhone/iPad 的图像处理,我发现了一些很好的教程,但信息不多。

好吧,我正在尝试保存从较大图像的 ROI 裁剪的图像,XCode 和模拟器没有报告任何错误,但是当我尝试打开使用 Finder 保存的图像时,它报告“文件损坏或格式无法识别”错误。

这是裁剪和保存图像的代码(它被插入到来自nashruddin.com的人脸识别教程中

cvSetImageROI(image, cvRect(cvrect.x * scale, cvrect.y * scale, cvrect.width * scale, cvrect.height * scale));


/* create destination image
Note that cvGetSize will return the width and the height of ROI */

IplImage *img2 = cvCreateImage(cvGetSize(image),
image->depth,
image->nChannels);

cvCopy(image, img2, NULL);

cvResetImageROI(image);

CvAttrList attributes;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; //2
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"prueba.jpg"];

cvSave([path UTF8String], img2, NULL, NULL, attributes);

在此先感谢您提供的任何帮助

塞尔吉奥

最佳答案

你应该使用 cvSaveImage为了那个原因。 cvSave以 XML/YAML 格式保存图像。或者作为一个选项,您可以获取原始图像数据并使用 UIImagePNGRepresentation()/UIImageJPEGRepresentation() 获取 PNG/JPEG 表示,并使用 [NSData writeToFile... ]

要将 IplImage 转换为 UIImage,请使用:

UIImage*  CreateUIImageFromIplImage(IplImage* ipl_image) {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSData* data = [NSData dataWithBytes: ipl_image->imageData length: ipl_image->imageSize];
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
CGImageRef imageRef = CGImageCreate(ipl_image->width, ipl_image->height,
ipl_image->depth, ipl_image->depth * ipl_image->nChannels, ipl_image->widthStep,
colorSpace, kCGImageAlphaNone|kCGBitmapByteOrderDefault,
provider, NULL, false, kCGRenderingIntentDefault);
UIImage* ret = [UIImage imageWithCGImage: imageRef];
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
CGColorSpaceRelease(colorSpace);

return ret;
}

关于iphone - 将图像保存到 iPhone 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com