首页 > 解决方案 > 使用 opencv.js 的红色免费图像

问题描述

我需要获取图像并提取颜色通道(R、G、B),然后合并绿色和蓝色通道,我做错了什么?(使用 OpenCV.js)

<button type="button" onclick="filter('Aneritra')">Aneritra</button>


<script>
    function filter(filter_name){
        if(filter_name == 'Aneritra'){
            let src = cv.imread('Selected_Image');
            let dst = new cv.Mat();
            let rgbaPlanes = new cv.MatVector();
            // Split the src
            cv.split(src, rgbaPlanes);
            // Get G channel
            let G = rgbaPlanes.get(1);
            // Get B channel
            let B = rgbaPlanes.get(2);
            // Merge G & B channels
            cv.merge((G,B), dst);
            cv.imshow('canvasOutput', dst);
            src.delete();
            dst.delete();
            rgbaPlanes.delete();
        }
    }
</script>

标签: javascripthtmlopencvimage-processingmerge

解决方案


    <script>
    function filter(filter_name){
        if(filter_name == 'Aneritra'){
            let src = cv.imread('Selected_Image');
            let dst = new cv.Mat();
            let rgbaPlanes = new cv.MatVector();
            let mergedPlanes = new cv.MatVector();
            // Split the src
            cv.split(src, rgbaPlanes);
            // Get G channel
            let G = rgbaPlanes.get(1);
            // Get B channel
            let B = rgbaPlanes.get(2);
            // Merge G & B channels
            mergedPlanes.push_back(G);
            mergedPlanes.push_back(B);
            cv.merge(mergedPlanes, dst);

            cv.imshow('canvasOutput', dst);
            // cleanup
            src.delete();
            dst.delete();
            rgbaPlanes.delete();
            mergedPlanes.delete();
        }
    }
</script>

推荐阅读