예제 #1
0
int main (int argc, char** argv) {


    IplImage* src = cvLoadImage(INPUT_IMAGE);
    IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
    
    AXI_STREAM  src_axi, dst_axi;
    IplImage2AXIvideo(src, src_axi);

    image_filter(src_axi, dst_axi, src->height, src->width);

    AXIvideo2IplImage(dst_axi, dst);

    cvSaveImage(OUTPUT_IMAGE, dst);
    

    int ret = 0 ;
    return ret;

}
예제 #2
0
void img_process(ZNQ_S32 *rgb_data_in, ZNQ_S32 *rgb_data_out, int height, int width, int stride, int flag_OpenCV)
{
	int i, j;

	// constructing OpenCV interface
	IplImage* src_dma = cvCreateImageHeader(cvSize(width, height), IPL_DEPTH_8U, 4);
	IplImage* dst_dma = cvCreateImageHeader(cvSize(width, height), IPL_DEPTH_8U, 4);
        src_dma->imageData = (char*)rgb_data_in;
        dst_dma->imageData = (char*)rgb_data_out;
        src_dma->widthStep = 4 * stride;
        dst_dma->widthStep = 4 * stride;
        
        if (flag_OpenCV) {
    	    opencv_image_filter(src_dma, dst_dma);
        } else {
            AXI_STREAM src_axi, dst_axi;
	    IplImage2AXIvideo(src_dma, src_axi);
            image_filter(src_axi, dst_axi, height, width);
            AXIvideo2IplImage(dst_axi, dst_dma);
        }

	cvReleaseImageHeader(&src_dma);
	cvReleaseImageHeader(&dst_dma);
}
예제 #3
0
void sw_image_filter(IplImage* src, IplImage* dst) {
    AXI_STREAM src_axi, dst_axi;
    IplImage2AXIvideo(src, src_axi);
    image_filter(src_axi, dst_axi, src->height, src->width);
    AXIvideo2IplImage(dst_axi, dst);
}