打印
[FPGA]

从FPGA的文件中读取像素值,并显示储存为bmp图像-opencv

[复制链接]
542|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feihufuture|  楼主 | 2020-9-8 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include "StdAfx.h"
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <vector>
#include<ppl.h>
using namespace cv;
using namespace std;
using namespace concurrency;
#define WINDOW_NAME "[程序窗口]"

#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<stdio.h>
#include <mutex>

// for filelisting
#include <stdio.h>
#include <io.h>
// for fileoutput
#include <string>
#include <fstream>
#include <sstream>
#include<iostream>

#define IMAGE_SIZE 256*256
#define IMAGE_WIDTH 256
#define IMAGE_HEIGHT 256
#define MAX_LINE 4*IMAGE_SIZE+1   //+1是因为最后一个字符不会读取

int main()
{               

       
        //生成模版集合
        vector<float> scaleSet;
        vector<float> angleSet;
        vector<Mat> modelImageSet;
        vector<int> modelPointSet;
        vector<int> row, col;
        vector<float> scale, angle, score;

        /*
        //待检测图片
        Mat srcImage=imread("img/11.jpg");
        Mat cannysrcImage, tempsrcImage;
        blur(srcImage, srcImage,Size(3,3) );//blur的作用是对输入的图像src进行均值滤波
        Canny(srcImage, cannysrcImage, 100, 200, 3, false);
        imshow("原始图2", srcImage);
        waitKey();
        */

       
        char buf[MAX_LINE];  /*缓冲区*/
        FILE *fp;            /*文件指针*/
        int len;             /*行字符个数*/
        if ((fp = fopen("E:\\CANNY\\CANNY\\CANNY.sim\\out_file0.txt", "r")) == NULL)
        {
                perror("fail to read");
                exit(1);
        }
        if (fgets(buf, MAX_LINE, fp) != NULL)
        {
                len = strlen(buf); /*从指定的流 stream 读取一行,并把它存储在str所指向的字符串内。当读取(n - 1)个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止*/
                printf(":::::::%d\n", len);
                /*for (int i = 0; i < len; i++)
                {
                        printf("%c\n", buf[i]);
                }*/
        }

        int image[IMAGE_SIZE];
        int CombData;
        for (int i = 0; i < len; i++)
        {
                int j = i % 4;
                int k = i / 4;
                int hundred, ten, unit;
                if (j == 1)
                {
                        if (buf[i] == 32) hundred = 0;//空格
                        else hundred = buf[i] - 48;
                        //printf("hundred:%d\n", hundred);
                }
                else if (j == 2)
                {
                        if (buf[i] == 32) ten = 0;
                        else ten = buf[i] - 48;
                        //printf("ten:%d\n", ten);
                }
                else if (j == 3)
                {
                        unit = buf[i] - 48;
                        //printf("unit:%d\n", unit);
                        CombData = hundred * 100 + ten * 10 + unit;
                        image[k] = CombData;
                }
        }
       

        //for (int i = 0; i < 10; i++)
        //{
        //        printf("%d\n", image[i]);
        //}

        #define IMAGE_WIDTH 256
        #define IMAGE_HEIGHT 256


        Mat ImageToShow = Mat(IMAGE_HEIGHT, IMAGE_WIDTH, CV_8UC1);

        for(int i=0;i<IMAGE_HEIGHT;i++)
                for (int j = 0; j < IMAGE_WIDTH; j++)
                {
                        ImageToShow.at<uchar>(i, j) = image[i*IMAGE_WIDTH + j];
                }
        imshow("原始图", ImageToShow);
        imwrite("E:\\CANNY\\CANNY\\CANNY.sim\\output.bmp", ImageToShow);
        waitKey();


        //char buf[max_line];  /*缓冲区*/
        //file *fp;            /*文件指针*/
        //int len;             /*行字符个数*/
        //if ((fp = fopen("e:\\canny\\canny\\canny.sim\\out_file0.txt", "w")) == null)
        //{
        //        perror("fail to read");
        //        exit(1);
        //}
        //char name[10] = { 55 ,56, 13 , 14 , 15 , 16 , 17 , 18 , 19 , '\0'};
        //fputs(name, fp);
        //return 0;

       

}





使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:WX:feihu612 免费合作开发ECAT主从站

171

主题

1027

帖子

100

粉丝