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 ...
随机推荐
- 页码条--字符串拼接--重写HtmlHelper
public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...
- 修改hive分区表,在分区列前增加一个字段
本文主要为了测试,在有数据的分区表中增加新的一个非分区字段后,新数据加入表中是否正常. 原始数据 1;zhangsan 2;zhangsan 3;zhangsan 4;lisi 5;lisi 6;li ...
- downsampling and upsampling【转】
orig: http://www.eetimes.com/document.asp?doc_id=1275556 downsampling The process of reducing a samp ...
- Meta http-equiv的属性详解 来自wanglehui
Meta http-equiv 语法标签格式:<meta http-equiv="参数" content="参数值"> 1."过期时间&q ...
- apk下载解决微信扫一扫问题
.btn{display: block;width:100%;padding:10px;border:none;cursor: pointer;outline: none;} .btn-primary ...
- C#中ref,out
out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字 比如 ...
- 百度地图helloworld程序问题
按照百度开发者平台[http://developer.baidu.com/map/index.php?title=androidsdk/guide/retrieval]的开发指南,完整编写代码ok之后 ...
- 我们还是太NAive
蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡蛤鸡
- SSR三网免流一键包以及使用教程
这篇文章只是传统的SSR免流教程 首先拿到一台vps,可以是centos,可以是debian,也可以是ubuntu 使用xshell连接vps 执行一键安装包 wget http://104.224. ...
- winform 异步添加文本提示
后台代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...