第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何用opencv4nodejs中的另一個(gè)值替換某個(gè)RGB值的所有像素

如何用opencv4nodejs中的另一個(gè)值替換某個(gè)RGB值的所有像素

梵蒂岡之花 2023-01-06 09:46:54
我為此使用了 opencv4nodejs 和 nodejs,我正在嘗試獲取圖像 RGB 值并替換特定索引中的特定 RGB 值并創(chuàng)建一個(gè)二維數(shù)組。const color_map = [[255,255,0], [255,0,0], [0,255,255], [0,255,0], [0,0,0]];const input_image = cv.imread("Data/IMG/train_labels/0.png");let index = 0function form_2D_label(mat) {    const image = mat.cvtColor(cv.COLOR_BGR2RGB);    const imageBuffer = mat.getData();    const ui8 = new Uint8Array(imageBuffer);    const imageData = new Array((image.rows * image.cols))    for (let i = 0; i < ui8.length; i += 3) {        imageData[index] = [ui8[i], ui8[i + 1], ui8[i + 2]];        for (const [index, element] of color_map.entries()) { // enumerate color map             // console.log(index, element);             // I am trying todo if imageData[index] value = [255, 255, 0] as 0, if [255, 0, 0] as 1, if [0, 255, 255] as 2 like this..        }        console.log(imageData[index]) // [255, 255, 0] / [255, 0, 0] like this        index++;    }    return imageData;}const test = form_2D_label(input_image);console.log(test);電流輸出[[ 0, 0, 0 ], [ 255, 0, 0 ], [ 0, 0, 0 ], [ 255, 0, 0 ], [ 0, 0, 0 ],[255, 255, 0]]預(yù)期的一個(gè)[[ 4, 1, 4, 1, 4, 0 ]]
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

你的問題有幾個(gè)問題。


首先color_map只有 5 個(gè)元素,但預(yù)期結(jié)果的索引從 0 到 5(6 個(gè)元素),我認(rèn)為這是一個(gè)錯(cuò)誤,你只需要真正的索引。


其次,您的代碼中沒有index分配的值,所以我假設(shè)它是下一個(gè)可用索引,并改用push屬性。


由于您實(shí)際上不想返回多維數(shù)組,而只想返回二維索引數(shù)組,因此返回imageData.


考慮到您在評(píng)論部分解釋的條件,即顏色映射值將是您唯一可以嘗試做的事情:


const color_map = [[255,255,0], [255,0,0], [0,255,255], [0,255,0], [0,0,0]];


function form_2D_label(mat) {

    const image = mat.cvtColor(cv.COLOR_BGR2RGB);

    const imageBuffer = mat.getData();

    const ui8 = new Uint8Array(imageBuffer);


    const imageData = [];


    for (let i = 0; i < ui8.length; i += 3) {

        imageData.push([ui8[i], ui8[i + 1], ui8[i + 2]]);

        console.log(imageData[imageData.length - 1])

    }


    return [imageData.map(el => color_map.findIndex(color => arrayEquals(color, el)))];

}


function arrayEquals(array1, array2) {

    for (let i = 0, l = array2.length; i < l; i++) {

        if (array2[i] !== array1[i]) return false;

    }

    return true;

}


查看完整回答
反對(duì) 回復(fù) 2023-01-06
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)