Opencv读取图片像素值并保存为txt文件

#include <opencv2/opencv.hpp>
#include<vector>
#include <fstream>

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
  const char* imagename = "2.jpg";

  //从文件中读入图像
  Mat img = imread(imagename);
  ofstream outfile("rgb.txt");

  //如果读入图像失败
  if (img.empty())
  {
    fprintf(stderr, "Can not load image %s\n", imagename);
    return -1;
  }

  int i, j;
  int cPointR, cPointG, cPointB, cPoint;//currentPoint;
  for (i = 1; i < img.rows; i++)
  {
    for (j = 1; j<img.cols; j++)
    {
      cPointB = img.at<Vec3b>(i, j)[0];
      cPointG = img.at<Vec3b>(i, j)[1];
      cPointR = img.at<Vec3b>(i, j)[2];
      cout << "R:"<<cPointR<<" G:"<<cPointG <<" B:"<<cPointB<< endl;
      outfile << i<<"," << j << "," <<cPointR << "," << cPointG << "," << cPointB << " ";
      if (cPointB>100 & cPointR<100 & cPointG<100)
      {
        img.at<Vec3b>(i, j)[0] = 0; //单通道是uchar,没有[0][1][2]
        img.at<Vec3b>(i, j)[1] = 0;
        img.at<Vec3b>(i, j)[2] = 0;
      }
    }
    outfile << endl;
  }

  //显示图像
  imshow("image", img);

  //此函数等待按键,按键盘任意键就返回
  waitKey();

  return 0;
}

时间: 2024-10-10 08:52:28

Opencv读取图片像素值并保存为txt文件的相关文章

【练习4.2】使用鼠标事件获取图片像素值

<学习OpenCV>中文版第4章第2题 题目要求: 点击图片是获取该点的颜色值,并在图像上点击鼠标处用文本将颜色值显示出来. 程序代码: 1 #include "stdafx.h" 2 #include <cv.h> 3 #include <highgui.h> 4 using namespace std; 5 using namespace cv; 6 7 void MouseCallBack(int event, int x, int y, in

OpenGL——OpenCV读取图片进行纹理贴图

使用OpenCV读取图片代码如下 img = imread(m_fileName); if (img.empty()) { fprintf(stderr, "Can not load image %s\n", m_fileName); return -1; } //设置长宽 int width = img.cols; int height = img.rows; int channel = img.channels(); printf(" depth %d\n",

保存MATLAB中间变量值的方法:保存为txt文件或者mat文件

1.直接保存为TXT文件: 具体的命令是:用save *.txt -ascii x (x为变量: *.txt为文件名,该文件存储于当前工作目录下,再打开就可以 打开后,数据有可能是以指数形式保存的.) 例子: a =[17 24 1 8 15;23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 ]: save afile.txt -ascii a afile.txt打开之后,是这样的: 1.7000000e+001 2.4000000e+00

Opencv 中图片像素操作的应用实例——计算图片某一种颜色区域大小所占比

对图片进行处理,其中图片像素的处理是基本的过程,包括对图片像素的遍历,对每一个像素的RGB三个通道的灰度值的获取等. 以下是基于opencv 的一个应用实例,即计算图片中黄色区域大小占整个图片大小的比例. 1 // computerPercentage.cpp: 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include<iostream> 6 #include<opencv2/opencv.hpp> 7 #in

利用spring batch 读取数据库中的数据写入到txt文件中

写一个job,其配置文件为: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:batch="http://www.springfram

php 读取网页源码 , 导出成txt文件, 读取xls,读取文件夹下的所有文件的文件名

<?php // 读取网页源码$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, 1);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点.$contents = curl_exec($curl); //导出成

读取以key=value形式存储的txt文件

代码片段(假设只有3个key=value): public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("C:\\Users\\Administrator\\Desktop\\test.txt"),"GBK")); String str =

c#读取doc,pdf,ppt,txt文件

doc pdf ppt与 txt之间的转换 : 组件的作用一般是将文件读出成字符格式,并不是单纯的转换文件名后缀,所以需要将读出的东西写入txt文件 . 添加office引用 .net中对office中的word及ppt进行编程时,确保安装office时已经安装了word,ppt可编程组件(自定义安装时可查看)或者安装“Microsoft Office 2003 Primary Interop Assemblies” 安装后,在编程页面添加引用: 添加引用-com—microsoft power

解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)

不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了 关键:outStream.write(finalContent.getBytes("gbk")); write的时候设置一下:转换格式(UFT-8在android不能用,只能用gbk)!!!我之前试过utf-8,还是乱码,没什么用,就是gbk! 从项目里面抽取了这个把String保存为txt到本地的方法: String sdCardDir =Environment.getExternalStorageDir