精华内容
下载资源
问答
  • opencv 读取图像像素值到数组,用指针方式实现 opencv 读取图像像素值到数组,用指针方式实现
  • opencv读取图像像素值

    千次阅读 2017-11-28 23:00:38
    用鼠标取图片中的像素值#include<opencv2\opencv.hpp> #include using namespace cv; using namespace std; bool flag = false; int xvalue = 0; int yvalue = 0; Mat image,image1,image2; void mousecallback(int ...

    用鼠标取图片中的像素值

    #include<opencv2\opencv.hpp>
    #include<iostream>
    using namespace cv;
    using namespace std;
    bool flag = false;
    int xvalue = 0;
    int yvalue = 0;
    Mat image,image1,image2;
    void mousecallback(int event, int x, int y, int flags, void* userdata);
    int main(int argc, char* argv[])
    {
     namedWindow("imageshow", 0);
     Mat image = imread("F:\\6.jpg", 1);
     if(!image.data)
     {
      cout<<"the image is error"<<endl;
      return 0;
     }
     imshow("imageshow", image);
     image.copyTo(image1);
     cv::setMouseCallback("imageshow", mousecallback, 0);
     waitKey(0);
     return 0;
    }
    void mousecallback(int event, int x, int y, int flags, void* userdata)
    {
     image1.copyTo(image2);
     switch (event)
     {
     case EVENT_LBUTTONDOWN:
      {
       flag = true;
      }
      break;
     case EVENT_LBUTTONUP:
      {
       if(flag)
       {
        xvalue = x;
        yvalue = y;
        flag = 0;
        int b = image1.at<Vec3b>(yvalue, xvalue)[0];
        int g = image1.at<Vec3b>(yvalue, xvalue)[1];
        int r = image1.at<Vec3b>(yvalue, xvalue)[2];
        cout<<"B:"<<b<<' '<<"G:"<<g<<' '<<"R:"<<r<<endl;
       }
      }
      break;
     }
    }
    展开全文
  • #include #include#include using namespace std;using namespace cv;int main(int argc, char* argv[]){const char* ...//从文件中读入图像Mat img = imread(imagename);ofstream outfile("rgb.txt");//如果...

    #include

    #include

    #include

    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

    {

    cPointB = img.at(i, j)[0];

    cPointG = img.at(i, j)[1];

    cPointR = img.at(i, j)[2];

    cout << "R:"<

    outfile << i<

    if (cPointB>100 & cPointR<100 & cPointG<100)

    {

    img.at(i, j)[0] = 0; //单通道是uchar,没有[0][1][2]

    img.at(i, j)[1] = 0;

    img.at(i, j)[2] = 0;

    }

    }

    outfile << endl;

    }

    //显示图像

    imshow("image", img);

    //此函数等待按键,按键盘任意键就返回

    waitKey();

    return 0;

    }

    展开全文
  • 当我读出图像时,我看到它只有一个索引大:n = len(res)我想读出每个像素,如果像素I&gt;128,它必须是1。否则必须是0。在for index in res:if res[h] > 128:res[h] = 1else:res[h] = 0h = h + 1但是res...

    我有一个1x128灰度图像,我想复制到数组/列表中。

    当我读出图像时,我看到它只有一个索引大:n = len(res)

    我想读出每个像素的值,如果像素I&gt;128,它必须是1。否则必须是0。在for index in res:

    if res[h] > 128:

    res[h] = 1

    else:

    res[h] = 0

    h = h + 1

    但是res只有一个元素,看起来像这样:res = [[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 0 0 128 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

    255 255 255 255]]

    我想把它放在一个数组中,这样我就可以把每个索引(也就是转换成1或0)转换成神经网络的输入。在

    有人能解释一下我怎么做吗?

    以下是我的主要作品:

    ^{pr2}$

    展开全文
  • %s, height : %s, channels : %s”%(width, height, channels)) for row in range(height): for col in range(width): for c in range(channels): pv = image[row, col, c] image[row, col, c] = 255-pv #像素取反 ...

    data/dtype/size/shape/len

    ‘’’

    import cv2 as cv

    import numpy as np

    def access_pixes(image):

    print(image.shape)

    height = image.shape[0]

    width = image.shape[1]

    channels = image.shape[2]

    print(“width : %s, height : %s, channels : %s”%(width, height, channels))

    for row in range(height):

    for col in range(width):

    for c in range(channels):

    pv = image[row, col, c]

    image[row, col, c] = 255-pv #像素取反

    cv.imshow(“pixels_demo”, image)

    def create_image():

    #多通道修改

    ‘’’

    img = np.zeros([512, 512, 3], np.uint8) #定义一个三维都是0的矩阵

    img[:, :, 0] = np.ones([512, 512])*255 #修改第一个通道(blue通道)

    cv.imshow(“new image”, img)

    #单通道修改

    img = np.ones([512, 512, 1], np.uint8) #定义一个一维的单通道矩阵

    img = img*127

    cv.imshow("new image", img)

    '''

    m1 = np.ones([3, 3], np.uint8)

    m1.fill(122.83)

    print(m1)

    m2 = m1.reshape([1, 9])

    print(m2)

    def inverse(image):

    dst = cv.bitwise_not(image) #像素取反

    cv.imshow(“inverse demo”, dst)

    print("----------Hello python-------------")

    src = cv.imread(“E:/image/lena.jpg”)

    cv.namedWindow(“input_image”, cv.WINDOW_AUTOSIZE)

    cv.imshow(“input_image”, src) #显示图片,命名为input_image

    t1 = cv.getTickCount()

    inverse(src)

    t2 = cv.getTickCount()

    time = (t2-t1)/cv.getTickCount()

    print(“time : %s ms”%(time*1000))

    cv.waitKey(0)

    cv.destroyAllWindows()

    展开全文
  • 前文传送门:普通操作1....需要注意的是, OpenCV 读取图像是 BGR 存储显示。灰度图片读取操作:import cv2 as cv# 灰度图像读取gray_img = cv.imread("maliao.jpg", cv.IMREAD_GRAYSCALE)print(gray_img[...
  • #include <opencv/cv.h> #include <opencv/highgui.h> using namespace std; int main() { IplImage* img = 0; int height,width,step,channels; int i,j,k; img = cvLoadImage(“k:\lena.jpg”,-1); ...
  •  outfile1图像像素值";  height = img->height;  width = img->width;  for(int i=0;i<img->width;i++)  {  for(int j=0;j<img->height;j++)  {  s = cvGet2D(img,i,j);//(j,i)  outfile1[0];...
  • OpenCV读取图像像素值

    千次阅读 2016-10-09 11:00:02
    OpenCV中用于读取图像像素点的的方法很多,这里主要提供了两种常用的方法。 方法一 利用IplImage数据类型的imageData定位数据缓冲区来实现,imageData包含指向图像第一个像素数据的指针 例: If( imgSource != 0 )...
  • 关于OpenCV Mat读取像素值

    千次阅读 2017-11-13 21:48:27
    最近开始使用OPenCV读取图像像素值,并做处理,裁剪出ROI区域,并做保存。 对于Mat类生成的对象,包含诸多属性,Mat.rows, Mat.cols分别表示图像的heighten和width属性。 Mat的坐标系从左上角(0,0)开始,到右下角...
  • OpenCV中用于读取图像像素点的的方法很多,这里主要提供了两种常用的方法。 方法一 利用IplImage数据类型的imageData定位数据缓冲区来实现,imageData包含指向图像第一个像素数据的指针 例: If( imgSource !=...
  • **python + opencv实现提取.png和.jpg图像像素信息并存储到txt文件中代码**import cv2import numpyimport matplotlib.pyplot as pltimg = cv2.imread(“D:/Desktop/show_example1/train/0/1.jpg” , cv2.IMREAD_...
  • #include #include#include using namespace std;using namespace cv;int main(int argc, char* argv[]){const char* ...//从文件中读入图像Mat img = imread(imagename);ofstream outfile("rgb.txt");//如果...
  • C++/opencv遍历图像像素值,创建并绘制新的图像 代码的主要功能: 主要是给原图,图上一层颜色,不同的类别对应不同的颜色 ori_img: label_img: 通过读取 label_img生成彩色图: 和原图融合: 1、有 ori.jpg原图...
  • opencv图像像素值读取

    千次阅读 2016-08-26 09:28:46
    说到图像像素,肯定要先认识一下图像中的坐标系长什么样。 1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是...
  • 首先是在某论坛上一位老师写的一个程序,这个不是用OpenCV写的,也很棒,放在这里,免得日后忘记。 这是用了微软提供的GDI写的,其实跟OpenCV也很像。如果没有安装OpenCV的话,是很好的选择。 #include #include...
  • 读取图像像素,并保存到二维数组中。图像高度和宽度不是4的倍数 IplImage* src= cvLoadImage("E:\\tupian\\289011.jpg", 0); //导入图 \289011.jpg int width = src->width;//图片宽度 int height = src->...
  • 对于 matlab 起家做数字图像处理的人来讲都非常适应matlab对图像处理的操作和思路,尤其是它可以非常方便直观的看到图像的RGB。由于最近在研究深度学习的计算机视觉方面的东西,于是完全自学接触到opencv的Python...
  • opencv读取图像的灰度并显示出来

    万次阅读 2018-11-19 10:17:57
    通过双层循环,遍历所有的像素值,再输出灰度值即可。图片太大,所有只选择20行和20列进行输出。  昨天要用到图片的灰度值,脑子突然短路了,忘了存储灰度图的数组,存放的就是图片的灰度值,还以为要用什么函数...
  • #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/video.hpp" #include "opencv2/videoio.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc/imgproc_...
  • OpenCV中用于读取图像像素点的

    千次阅读 2016-12-17 14:41:53
    OpenCV中用于读取图像像素点的方法一 利用IplImage数据类型的imageData定位数据缓冲区来实现,imageData包含指向图像第一个像素数据的指针 例: If( img!= 0 )//imgSource为IplImage* { for(int i = 0; i ...
  • RGB模式的彩色图像在读入OpenCV内进行处理时,会依次读取该RGB图像的B通道、G通道、R通道。 可使用表达式访问数组内的。如:img[0,0,0]表示访问图像img的B通道内的第1行第1列上的像素点。 img[0,0,0]中: - 第1个...
  • OpenCV常用读取像素方法及读取速度对比 法一 指针法(效率最高) void main() { //灰度图 Mat src = imread("src.jpg", 0); //图像行、列 int row = src.rows, col = src.cols; for (int i = 0; i < row; i+...
  • opencv读取图像

    千次阅读 2016-08-24 22:53:50
    说到图像像素,肯定要先认识一下图像中的坐标系长什么样。  1. 坐标体系中的零点坐标为图片的左上角,X轴为图像矩形的上面那条水平线;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point...
  • 首先我们了解,一个图像,都是一个大的二维...img = cv2.imread("open.png", 1) #通过opencv的imread读取图像,后边是1表示是读取彩色图像,在opencv中,用bgr来表示,这和rgb刚好反过来 (b, g, r) = img[100, 100...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 389
精华内容 155
关键字:

opencv读取图像像素值