从txt文件中逐行读取字符串,并且用读取到的字符串在Mat型的图片上画矩形

17 篇文章 0 订阅

1.程序主要功能

  1. 从txt文件中逐行读取字符串
  2. 把字符串转换成整型的数值
  3. 把整形的数值赋值给一个点的横坐标和纵坐标
  4. 在一张图片上画矩形
  5. opencv的使用
  6. 文件的读取过程

2.代码说明

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
const int window_width = 100;
const int window_height = 100;
char window_name[] = "ResultPicture";
void main()
{
    RNG rng(0xFFFFFFFF);
    Mat image = Mat::zeros(window_height, window_width, CV_8UC3);//初始化Mat矩阵
    char s[16][20] = { 0 };
    int num[16] = { 0 };
    int i = 0;
    FILE *fp;
    fp = fopen("1.txt", "r");
    Point pt[8];
    for (int i = 0; i < 16; i++)
    {
        fscanf(fp, "%s", s[i]);
        num[i] = atoi(s[i]);
    }
    fclose(fp);
    for (int i = 0; i < 8; i++)
    {
        static int j = 0;
        {
            pt[i].x = num[j];
            pt[i].y = num[j + 1];
            j += 2;
        }
    }
    for (int i = 0; i < 8; i += 2)
    {
        //rectangle(image, pt[i], pt[i + 1], Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)), 2, 8);
        rectangle(image, pt[i], pt[i + 1], Scalar(0,255,255), 2, 8);
    }
    imshow(window_name, image);
    waitKey(0);
    system("pause");
}

3.”1.txt”的内容

这里写图片描述

4.运行结果展示

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值