opencv从txt文本读取像素点并显示
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文本读取像素点并显示的更多相关文章
- OpenCV【2】---读取png图片显示到QT label上的问题
问题一: 操作图片test.png是一个365x365的PNG图片 通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...
- ajax读取txt文本时乱码的解决方案
前言:第一次学习使用 ajax 就是用来读取文本 先给出现乱码的代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
- java 读取CSV数据并写入txt文本
java 读取CSV数据并写入txt文本 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import ja ...
- 从txt文本内读取数据(逐行读取),执行循环
如下图,名称为1.txt的文本文件内有链接若干条,预期是循环读取txt文本内链接,而后访问该链接 脚本如下: for line in open('C:\\Users\\Beckham\\Desktop ...
- 使用java读取解析txt文本数据,管理简单的数据
在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使 ...
- python读取、写入txt文本内容
转载:https://blog.csdn.net/qq_37828488/article/details/100024924 python常用的读取文件函数有三种read().readline().r ...
- JAVA读取TXT文本中的数据
现在在Demo.txt中存在数据: ABC 需要将ABC从文本文件中读取出来 代码片: import java.io.*; class FileReaderDemo { public static v ...
- 自动化测试-17.selenium数据的分离之txt文本的写入与读取
前言 数据量偏小时,用txt文本保存数据比较合适,以-进行区分,为什么不用:呢?原因是,我们在使用数据时,会存在url地址的情况,里面宝行:所以用-进行替代 此处附上代码 #encoding=utf- ...
- Javascript写入txt和读取txt文件的方法
文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...
随机推荐
- python数据结构与算法——哈希表
哈希表 学习笔记 参考翻译自:<复杂性思考> 及对应的online版本:http://greenteapress.com/complexity/html/thinkcomplexity00 ...
- java 三个循环的优缺点
package cc.knms.appservice.test; import java.text.ParseException; import java.util.ArrayList; import ...
- T-SQL - 访问远程数据库并对其数据表进行操作
一.概述 很多时候我们需要在.NET应用程序中使用一条SQL语句来访问来自不同服务器.不同数据库中的不同的表,实现方法有很多.我们可以在.NET应用程序中建立数据访问层,使用ADO.NET Entit ...
- JAVA文件下载功能问题解决日志
今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...
- Git简易教程
概述 在说明什么是git之前,我们需要对版本控制(Version Control)做一个基本的概述,一般情况下,我们的源代码都是在时间和空间两个维度上进行管理并维护的,代码本身以及组织代码的项目文件( ...
- 随机函数的代码(srand、rand)
#include<stdio.h> int main() int counter; for(counter=0;counter<10;counter++) { srand(count ...
- RestEasy 3.x 系列之四:使用Hibernate_Validator进行数据校验
使用Hibernate_Validator进行数据校验,好处不言而喻:规范统一,低耦合度. 1.pom.xml <dependency> <groupId>org.hibern ...
- 编写一个Singleton程序(单例)
public class Test { private static Test test = new Test(); private Test(){}//构造方法私有化 private static ...
- AutoVue打开ProE工程图中文乱码
解决办法: 在AutoVue安装目录/Bin/allusers.ini中增加 [Options]ProELang=Chinese_cn
- oracle11g重置system密码,外二
来自:http://lukeview.blog.51cto.com/508652/912124 win+r,输入sqlplus /nolog,回车SQL> conn /as sysdba已连接: ...