android - Opencv Android 的代码优化

标签 android c++ optimization image-processing opencv

我在 Android 上使用此 opencv 代码进行强度均衡。每帧 (720x480) 的执行时间约为 300 毫秒。有人对可能的时间优化有想法吗?

这是代码:

        cvtColor(image, hsvImage, CV_BGR2HSV);
        // Get intensity
        intensity = hsvImage.at<Vec3b>((int)reference.Point_::y, (int)reference.Point_::x);
        float value = (float)REGULAR_INTENSITY / intensity[2];
        float saturation = (float)REGULAR_SATURATION / intensity[1];
        if (counter == 15 && (int)intensity[2] < REGULAR_INTENSITY) {
            equalization = false;
        }
        // Modify intensity
        float transformedSaturation, transformedValue;
        for(int i = 0; i < hsvImage.rows; i++) {
            unsigned char *data = hsvImage.ptr(i);
            for(int j = 0; j < hsvImage.cols; j++) {
                transformedSaturation = (uchar)*++data * saturation;
                if (transformedSaturation > MAX_COLOR) {
                    transformedSaturation = MAX_COLOR;
                }
                *data++ = transformedSaturation;
                transformedValue = (uchar)*data * value;
                if (transformedValue > MAX_COLOR) {
                    transformedValue = MAX_COLOR;
                }
                *data++ = transformedValue;
            }
        }
        cvtColor(hsvImage, image, CV_HSV2BGR);

最佳答案

您尝试过使用 OpenCV transform ?我想它是优化的,但我不知道饱和度(即如果> max_color,则= max color)

关于android - Opencv Android 的代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790154/

相关文章:

android - 哪些 Android 工具和方法最适合查找内存/资源泄漏?

c++ - 是否有更惯用的方式来拆分 std::vector?

excel - Excel 中的用户定义函数和速度问题

c++ - 将多个输入从文件C++的一行分开

c++ - 如何读取 stdin 以 qt 结尾?

android - 如何减少嵌入式 android 操作系统的启动时间?

c# - C# 是否内联属性?

java - 为什么 Twitter 应用程序不共享动画 gif?

java - 有没有什么方法可以找出Android智能手机的显示变化事件?

android - 检查用户是否已经登录到 Facebook