首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有效的岩心图像下采样

有效的岩心图像下采样
EN

Stack Overflow用户
提问于 2016-09-02 05:03:35
回答 2查看 1.6K关注 0票数 3

如果是最佳表现页面,

使用核心图形或图像I/O函数来裁剪或降样本,例如函数CGImageCreateWithImageInRect或CGImageSourceCreateThumbnailAtIndex。

然而,我想知道,如果你只在核心图像中工作,那么这是多么的真实。如果我有一个图像需要被降采样,然后与其他东西一起进行过滤,那么转换为CGImage、下采样、然后转换回CIImage以供其他用途不是更低的效率吗?

我想知道,如果下采样是您正在执行的图像处理算法的一部分,那么在核心图像框架中工作是否更好。当然,如果上面的速度更快的话,我想试一试,但我不确定是否有其他方法能尽快降低样品的样品。不,不幸的是,CILanczosScaleTransform是可怕的慢,我希望核心图像有一个更快的方式在构建之外,以缩放图像。

EN

回答 2

Stack Overflow用户

发布于 2016-10-19 00:48:55

我正在使用下面的代码,我在这里找到了:

http://flexmonkey.blogspot.com/2014/12/scaling-resizing-and-orienting-images.html

代码语言:javascript
代码运行次数:0
运行
复制
extension UIImage {
    public func resizeToBoundingSquare(_ boundingSquareSideLength : CGFloat) -> UIImage {
        let imgScale = self.size.width > self.size.height ? boundingSquareSideLength / self.size.width : boundingSquareSideLength / self.size.height
        let newWidth = self.size.width * imgScale
        let newHeight = self.size.height * imgScale
        let newSize = CGSize(width: newWidth, height: newHeight)
        UIGraphicsBeginImageContext(newSize)
        self.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight))
        let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext();
        return resizedImage!
    }
}

在缩小大小和/或使各种像素大小一致之后,我使用CI过滤器,包括自定义和链接。我没有看到任何性能或记忆问题。

票数 1
EN

Stack Overflow用户

发布于 2021-03-29 20:35:03

我认为,通过在CGAffineTransform本身上使用CIImage (标度X,y),我已经看到了最快的性能。我尝试了CGImagesource缩略图方法,开销方法超过了任何好处,可能是因为必须进行更多的源转换。请注意,我是从一个CVSampleBuffer开始的,所以我的链如下所示:

CVSampleBuffer -> CIImage ->与CGAffineTransform -> CIFiltering用过滤链.直接输入到VNRequest。我能够得到60赫兹直接从相机实时处理使用这种方法,虽然我想进一步优化它,这就是为什么我正在寻找一个更快的选择!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39284617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档