Как смывать hls :: Mat? - PullRequest
       85

Как смывать hls :: Mat?

0 голосов
/ 26 марта 2019

Мне нужно сложить верхнюю половину двух изображений (hls :: Mat) вместе. В итоге у меня возникли следующие ошибки.

ВНИМАНИЕ: Hls :: stream 'hls :: stream.8' содержит оставшиеся данные, которые могут привести к зависанию симуляции RTL.

Если я смою остатки на

while (1){
    img_in0 >> p0;
    if (!p0.val[0])
        break;
}

Я получил следующую ошибку

ВНИМАНИЕ: Hls :: stream 'hls :: stream.7' читается в пустом состоянии, что может привести к зависанию симуляции RTL.

Интересно, как лучше всего смыть остатки?

#define NO_PREFILTER

#include "stereo_top.h"

void combine2(
        GRAY_IMAGE& img_in0,
        GRAY_IMAGE& img_in1,
        GRAY_IMAGE& img_out,
    int rows,
    int cols) {

hls::Scalar<1, unsigned char> p0, p1, p;


L_row: for(int row = 0; row < rows; row++) {
#pragma HLS LOOP_TRIPCOUNT min=1 max=1080

    L_col: for(int col = 0; col < cols; col++) {
    #pragma HLS LOOP_TRIPCOUNT min=1 max=1920
    #pragma HLS pipeline rewind
        if(row<(rows/2)) {
            img_in0 >> p0;
            p = p0;
        }
        else
        {
            img_in1 >> p1;
            p = p1;
        }
        img_out << p;
    }

}

while (1){
    img_in0 >> p0;
    if (!p0.val[0])
        break;
}

}

void stereo_filter_lr(AXI_STREAM& imgLeft_axi, AXI_STREAM& imgRight_axi, AXI_STREAM& stereoOut, int rows, int cols)
{
#pragma HLS INTERFACE axis port=imgRight_axi
#pragma HLS INTERFACE axis port=imgLeft_axi
#pragma HLS INTERFACE ap_none port=cols
#pragma HLS INTERFACE ap_none port=rows

RGB_IMAGE   imgL_0(rows, cols);
RGB_IMAGE   imgR_0(rows, cols);
GRAY_IMAGE  img_L(rows, cols);
GRAY_IMAGE  img_R(rows, cols);
GRAY_IMAGE  disp(rows, cols);
RGB_IMAGE           stereo(rows, cols);

#pragma HLS dataflow

    //Recieve data stream and convert to Mat format
    hls::AXIvideo2Mat(imgLeft_axi, imgL_0);
    hls::AXIvideo2Mat(imgRight_axi, imgR_0);

    //Convert RGB Image to Gray Image
    hls::CvtColor<HLS_BGR2GRAY>(imgL_0, img_L);
    hls::CvtColor<HLS_BGR2GRAY>(imgR_0, img_R);

    combine2(img_L, img_R, disp, rows, cols);

    hls::CvtColor<HLS_GRAY2BGR>(disp, stereo);
    hls::Mat2AXIvideo(stereo, stereoOut);
    return;
}

1 Ответ

0 голосов
/ 26 июля 2019

Я полагаю, что вы можете использовать следующую функцию для использования оставшихся данных:

hls::Consume()
...