opencv从txt文本读取像素点并显示

文本储存格式为每行一个像素点,排列为RGB。每帧图像的帧头为65535.  如下图所示


废话不多说,代码如下:

//
#include <iostream>
#include <opencv2\opencv.hpp>
#include <fstream>
#include <string>
#include <WINSOCK2.H>
#include <STDIO.H> #define MAX 32
using namespace cv;
using namespace std; Vec3b GetPoint( void )
{
Vec3b pixels; //声明像素点储存变量//static int64 count = 0;cout<<count++<<endl;
char Buf[MAX];//声明一个buf,用来储存一行
//声明三个空格,用于分割像素点
int firstspace = ; int secondspace = ; int thirdspace = ;
//读取一行数据
cin.getline(Buf,MAX);
//如果读到的是个回车或者换行,则继续读
while(Buf[] == '\0'||Buf[] == ' ' ) cin.getline(Buf,MAX);
//遍历整个buf,找到三个空格的位置
for(int i = ;i < MAX ;i ++ )
{
if(Buf[i] == ' ')
{
if(firstspace != && secondspace != && thirdspace ==) thirdspace =i;
if(firstspace != && secondspace == ) secondspace = i;
if(firstspace == ) firstspace = i; } }
//将三个空格之间的像素点解码储存
for(int i = ; i < firstspace; i++) { pixels[] += (Buf[i] - )*pow(,firstspace--i); }
for(int i = firstspace+; i < secondspace; i++) { pixels[] += (Buf[i] - )*pow(,secondspace--i); }
for(int i = secondspace+; i < thirdspace; i++) { pixels[] += (Buf[i] - )*pow(,thirdspace--i); }
//抛出这个像素点
return pixels;
} int main(int argc, char* argv[])
{
//首先定义一个图像buf,并初始化为0 ,此处一定要初始化图像大小和通道数,否则迭代器无法使用
Mat ReceiveImage = Mat::zeros(,,CV_8UC3);
//声名一个窗口用于显示
namedWindow("picture");
//声明buf,用于缓冲入的储存单个字符
char ReadBuf;
//声明帧头判断标志位
int flag = ;
//输入流重定向,将输入流定向到相应文件,定向错误则退出
if(freopen("rgb.txt","r", stdin) == NULL ) { fprintf(stderr,"open error"); return -;}
//进入循环读图模式
while()
{ //帧头判断
if(flag != )
{
cin>>ReadBuf;
if(ReadBuf == '' && flag == ) flag = ;
else if(ReadBuf == '' && flag == ) flag = ;
else if(ReadBuf == '' && flag == ) flag = ;
else if(ReadBuf == '' && flag == ) flag = ;
else if(ReadBuf == '' && flag == ) flag = ;
else flag = ;
}else{ flag = ;
//迭代器读图储存
Mat_<Vec3b>::iterator itbeg = ReceiveImage.begin<Vec3b>() ;
Mat_<Vec3b>::iterator itend = ReceiveImage.end<Vec3b>() ;
for( ;itbeg != itend ;itbeg++ )
{ *itbeg = GetPoint(); }
imshow("picture",ReceiveImage);
waitKey();
}
}
return ;
}

opencv从txt文本读取像素点并显示的更多相关文章

  1. OpenCV【2】---读取png图片显示到QT label上的问题

    问题一:   操作图片test.png是一个365x365的PNG图片   通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...

  2. ajax读取txt文本时乱码的解决方案

    前言:第一次学习使用 ajax 就是用来读取文本 先给出现乱码的代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  3. java 读取CSV数据并写入txt文本

    java 读取CSV数据并写入txt文本 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import ja ...

  4. 从txt文本内读取数据(逐行读取),执行循环

    如下图,名称为1.txt的文本文件内有链接若干条,预期是循环读取txt文本内链接,而后访问该链接 脚本如下: for line in open('C:\\Users\\Beckham\\Desktop ...

  5. 使用java读取解析txt文本数据,管理简单的数据

    在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使 ...

  6. python读取、写入txt文本内容

    转载:https://blog.csdn.net/qq_37828488/article/details/100024924 python常用的读取文件函数有三种read().readline().r ...

  7. JAVA读取TXT文本中的数据

    现在在Demo.txt中存在数据: ABC 需要将ABC从文本文件中读取出来 代码片: import java.io.*; class FileReaderDemo { public static v ...

  8. 自动化测试-17.selenium数据的分离之txt文本的写入与读取

    前言 数据量偏小时,用txt文本保存数据比较合适,以-进行区分,为什么不用:呢?原因是,我们在使用数据时,会存在url地址的情况,里面宝行:所以用-进行替代 此处附上代码 #encoding=utf- ...

  9. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

随机推荐

  1. Hello Point——WebGL

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. 折腾域名的dns

    最近,购买域名的时候遇到了几个概念,刚开始不是很懂,最后都是直接找客服给我改好的,现在小结一下帮助理解. DNS域名管理是按后缀进行分组的,比如.com域名,作为最早的商用域名,有很高的推广价值.再比 ...

  3. SSL/TLS协议运行机制

      转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...

  4. chrome中怎么避免最小字体只能为12px

    在chrome下,fontSize的像素>=12px,因此不能通过调整html.fontSize=10px来定位rem. 但是我们可以通过设置html{font-size:625%;},p{fo ...

  5. Android之自定义控件-城市选择

    实现效果: 图片素材:           --> 首先, 城市数据字节放在 Json 文件, 就不网络获取了. city.json 存放 Json 数据: { "result&quo ...

  6. windows 下 putty 登陆服务器 显示matlab图形界面

    本文需要下载 putty.exe 和 pscp.exe :http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Xming 主 ...

  7. PP 创建BOM

    转自 http://blog.csdn.net/u012369651/article/details/19190939 一.最终结果预览. 二.创建过程. 使用到的事务码 CS01 创建BOM CS0 ...

  8. React Native的环境搭建以及开发的IDE

    (一)前言 前面的课程我们已经对React Native的环境搭建以及开发的IDE做了相关的讲解,今天我们的主要讲解的是应用设备运行(Running)以及调试方法(Debugging).本节的前提条件 ...

  9. C++ CreateThread 实例

    //ThreadBase.h#pragma once #include<windows.h> class CThreadBase { public: CThreadBase(void); ...

  10. js调用页面打印

    ----------------------调用页面打印-------------------------------- <body> <div id="divPrint& ...