精华内容
下载资源
问答
  • 参考:如何使用Opencv在C ++中获取特定行和列的像素值https://www.it1352.com/1134483.html 图像中像素坐标和RGB值: 代码: #include<opencv2/opencv.hpp> #include<iostream> using namespace std...

     参考:如何使用Opencv在C ++中获取特定行和列的像素值https://www.it1352.com/1134483.htmlicon-default.png?t=LA92https://www.it1352.com/1134483.html


    图像中像素坐标和RGB值: 

     代码:

    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    using namespace std;
    using namespace cv;
    
    Mat src, gray, dst;
    int main(int argc, char** argv)
    {
        src = imread("test.jpg");
        if (src.empty())
        {
            printf("could not find image");
            return -1;
        }
        namedWindow("input");
        imshow("input", src);
    
        Vec3b intensity = src.at<Vec3b>(150, 1800);//前面是Y坐标后面是X坐标就离谱
    
        uchar blue = intensity.val[0];
        printf("B: %d\n", blue);
    
        uchar green = intensity.val[1];
        printf("G: %d\n", green);
    
        uchar red = intensity.val[2];
        printf("R: %d\n", red);
    
        waitKey(0);
        return 0;
    }

    运行: 

    展开全文
  • OpenCV获取与设置像素点的值的几个方法
  • 采用OpenCV获取图像某像素

    热门讨论 2011-01-30 18:59:15
    这是基于vc++的例程,实现了采用OpenCV获取某一点的像素值。OpenCV是intel公司开发的编程工具包,就有强大的图像处理功能。
  • https://blog.csdn.net/zhu_hongji/article/details/81235643图像特征描述角检测原理ret,labels,stats,centroids=cv2.connectedComponentsWithStats(dst)import cv2import numpy as npimport matplotlib.pyplot as...

    https://blog.csdn.net/zhu_hongji/article/details/81235643

    图像特征描述

    角点检测原理

    ret,labels,stats,centroids=cv2.connectedComponentsWithStats(dst)

    import cv2

    import numpy as np

    import matplotlib.pyplot as plt

    img =cv2.imread('E:/python/ha.png')

    imgray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    #harris角点检测图像需为float32

    gray=np.float32(imgray)

    dst=cv2.cornerHarris(gray,8,3,0.04)

    dst=cv2.dilate(dst,None)

    ret,dst=cv2.threshold(dst,0.01*dst.max(),255,0)

    dst=np.uint8(dst)

    #图像连通域

    ret,labels,stats,centroids=cv2.connectedComponentsWithStats(dst)

    #迭代停止规则

    criteria=(cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER,100,0.001)

    corners=cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria)

    res=np.hstack((centroids,corners))

    res=np.int0(res)

    #img[res[:,1],res[:,0]]=[0,120,255]

    #img[res[:,3],res[:,2]]=[45,255,100]

    for i in res:

    x1,y1,x2,y2=i.ravel()

    cv2.circle(img,(x1,y1),3,255,-1)

    cv2.circle(img,(x2,y2),3,(0,255,0),-1)

    img=img[:,:,::-1]

    plt.imshow(img)

    shi_Tomasi角点

    import cv2

    import numpy as np

    import matplotlib.pyplot as plt

    img =cv2.imread('E:/python/ha.png')

    imgray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    #harris角点检测图像需为float32

    gray=np.float32(imgray)

    dst=cv2.goodFeaturesToTrack(gray,12,0.01,10)

    res=np.int0(dst)

    for i in res:

    x,y=i.ravel()

    cv2.circle(img,(x,y),3,255,-1)

    img=img[:,:,::-1]

    plt.imshow(img)

    角点具有旋转不变性但是不具有缩放性

    fast角点

    import cv2

    import numpy as np

    import matplotlib.pyplot as plt

    A = cv2.imread('E:/python/cd.png')

    imgray=cv2.cvtColor(A,cv2.COLOR_BGR2GRAY)

    fast = cv2.FastFeatureDetector_create(threshold=20,nonmaxSuppression=True,

    type=cv2.FAST_FEATURE_DETECTOR_TYPE_9_16)

    kp = fast.detect(imgray,None)

    img2 = cv2.drawKeypoints(A, kp,np.array([]), color=(255,0,0))

    print ("Threshold: ", fast.getThreshold())#输出阈值

    print ("nonmaxSuppression: ", fast.getNonmaxSuppression())#是否使用非极大值抑制

    print ("Total Keypoints with nonmaxSuppression: ", len(kp))#特征点个数

    img=img2[:,:,::-1]

    plt.imshow(img)

    展开全文
  • #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace cv; using namespace std; //...
    #include "stdafx.h"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    using namespace cv;
    using namespace std;
    //using namespace cv::xfeatures2d;
    //using namespace cv::ml;
    
    Mat src;
    bool down = false;
    Point prept = Point(-1, -1);
    Point curpt = Point(-1, -1);
    void on_mouse(int event, int x, int y, int flags, void* ustc)
    {
    
    	if (event == CV_EVENT_LBUTTONDOWN)    //右键按下
    	{
    		prept = Point(x, y);
    		cout << x << " " << y << endl;
    		down = true;
    	}
    	else if (event == CV_EVENT_LBUTTONUP)     //右键放开
    		down = false;
    
    	if (down == true && event == CV_EVENT_MOUSEMOVE)    //右键按下且鼠标移动
    	{
    		curpt = cvPoint(x, y);
    		line(src, prept, curpt, Scalar(255, 0, 0), 5);
    		waitKey(5);        //可以解决画图时卡顿的问题
    		imshow("src", src);
    		prept = curpt;
    	}
    }
    
    int main()
    {
    	src = imread("C:\\Users\\Administrator\\Desktop\\3.png", 1);
    
    	cvNamedWindow("src");
    	cvSetMouseCallback("src", on_mouse, 0);//关键内置函数
    
    	imshow("src", src);
    	cvWaitKey(0);
    	cvDestroyAllWindows();
    	return 0;
    }
    
    
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • python-利用OpenCV获取图像中鼠标点击处像素点坐标

    万次阅读 多人点赞 2019-11-26 18:49:17
    机器学习笔记之——获取图像中某点坐标 最近在学习做图像分割训练模型时用到了OpenCV这个包,在对图上某部分特征进行批量分割时总是不停的尝试扩大坐标、打印图像检查正确性、缩小、再打印、再重新调整,感觉自己像...

    机器学习笔记之——获取图像中某点坐标

    最近在学习做图像分割训练模型时用到了OpenCV这个包,在对图上某部分特征进行批量分割时总是不停的尝试扩大坐标、打印图像检查正确性、缩小、再打印、再重新调整,感觉自己像个憨憨一样,所以就想如果能实现一种方法找到鼠标点击处的坐标并输出到图片上,岂不是以后可以很方便?一番查询后才发现,原来OpenCV里自带的一些函数就可以实现这一功能,去看了OpenCV的官方文档,发觉到了OpenCV的强大之处,以下先吹一波OpenCV,读者可以跳过介绍部分直入正题。

    OpenCV介绍

    OpenCV于1999年由Gary Bradsky在Intel公司创建,第一个版本于2000年发布。瓦迪姆·皮萨列夫斯基加入加里·布拉斯基管理英特尔俄罗斯软件OpenCV团队。2005年,OpenCV被用于Stanley,这款车赢得了美国国防部高级研究计划局2005年的重大挑战。后来,在柳树车库的支持下,项目继续积极发展,由Gary Bradsky和Vadim Pisarevsky领导。目前,OpenCV支持许多与计算机视觉和机器学习相关的算法,并且它正在日益扩展。目前OpenCV支持多种编程语言,如c++、Python、Java等,可以在不同的平台上使用,包括Windows、Linux、OS X、Android、iOS等。此外,基于CUDA和OpenCL的接口也在积极开发用于高速GPU操作。OpenCV-Python是OpenCV的Python API。它结合了OpenCV c++ API和Python语言的最佳特性。

    实列

    实现获取像素点的功能主要基于OpenCV的内置函数cv2.setMouseCallback(),即鼠标事件回调,我们来看看官方文档里是怎么使用这个函数的:

    import cv2
    import numpy as np
    
    # mouse callback function
    def draw_circle(event,x,y,flags,param):
        if event == cv2.EVENT_LBUTTONDBLCLK:
            cv2.circle(img,(x,y),100,(255,0,0),-1)
    
    # Create a black image, a window and bind the function to window
    img = np.zeros((512,512,3), np.uint8)
    cv2.namedWindow('image')
    cv2.setMouseCallback('image',draw_circle)
    
    while(1):
        cv2.imshow('image',img)
        if cv2.waitKey(20) & 0xFF == 27:
            break
    cv2.destroyAllWindows()

    其中draw_circle这个函数实现的功能很简单,就是在双击过的地方画一个圆
    代码只有两句,如果检测到鼠标事件,则在鼠标双击的坐标处画一个大小为100的圆,由于OpenCV读入图片方式是BGR型的,那么此处颜色就为蓝色
    然后下方创建了一个512*512大小的图片窗口,调用CALL函数并显示图片,当检测到ESC时退出窗口。
    顺便提一句,这里的“&0xFF”是针对64位系统的,32位的需要去掉这里,27即ASCII码,代表ESC
    结果如下:

    在这里插入图片描述
    那根据这个官方的程序,我们想获得xy的坐标值就很简单了,直接看代码吧:

    import cv2
    import numpy as np
    
    img=cv2.imread('img.jpg')
    
    def on_EVENT_LBUTTONDOWN(event, x, y, flags, param):
        if event == cv2.EVENT_LBUTTONDOWN:
            xy = "%d,%d" % (x, y)
            cv2.circle(img, (x, y), 1, (255, 0, 0), thickness = -1)
            cv2.putText(img, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,
                        1.0, (0,0,0), thickness = 1)
            cv2.imshow("image", img)
    cv2.namedWindow("image")
    cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)
    while(1):
        cv2.imshow("image", img)
        if cv2.waitKey(0)&0xFF==27:
            break
    cv2.destroyAllWindows()

    效果如下:
    在这里插入图片描述
    按ESC退出

    展开全文
  • opencv获得鼠标点击像素坐标 鼠标操作涉及两个函数,第一个是cvSetMouseCallback,这个函数注册一个回调函数。使用方法如下: cvSetMouseCallback(“TestWin”, TestCallBack, Context); 前两个参数分别是窗口的名字...
  • 批量显示图像的像素点坐标,通过鼠标点击并保存像素点坐标位置。
  • 我这段时间也在进行轮廓提取相关的工作,轮廓线条的点坐标在contours里面的contour的point,我用的是java语言调用opencv的,所以对应的是:for(inti=0;iSystem.out.println(contours.get(i).size()+"rows:"+contours...
  • 给出了在opencv中使用鼠标获取图像的位置信息和颜色信息。开发环境为VC6.0、OpenCv1.0.测试通过,完全可用。
  • 图像经过霍夫直线检测出直线后,想要获得检测出直线上所有像素点坐标值,除了遍历以外还有其他方法么?
  • 很好的提取指定图像中指定颜色的像素点坐标的c++代码
  • 使用VS2013+opencv获取鼠标左键点击位置图像的像素值。
  • OpenCV像素坐标系的坐标原点在图像的左上角,这种坐标系在结构体Mat,Rect,Point中都是适用的。在Point(x,y)和Rect(x,y)中,第一个参数x代表的是元素所在图像的列数,第二个参数y代表的是元素所在图像的行数。 ...
  • Qt显示opencv图像,并获取图像坐标点, 画框。图像可缩放
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。... ...需求:在鼠标左键按下时,显示该位置的像素值和坐标。 在vs2010下新建了Win32控制台项目,在此只处理灰度图像,显...
  • OpenCV图像寻找特定颜色像素点坐标,并用不同颜色描点填充,Python 假设现在有一张九宫格图片: 需要把图中的1到9数组用金黄色颜色描点填充。 import cv2 import numpy as np if __name__=="__main__": img...
  • Smarth Brahmbhat学习OpenCV - O'ReillyOpenCV 2计算机视觉应用编程手册 - RobertLaganière我已经完成了校准过程,校准后我得到了所有的返回参数,例如:相机矩阵失真系数外部参数我运行了一个程序来获取这些数据 ...
  • opencv学习日记——寻找像素点的最值以及位置坐标 #include<iostream> #include<opencv2/opencv.hpp> #include<vector> using namespace std; using namespace cv; int main() { float a[4] = ...
  • 今天在提取像素点绘制水平以及数值轴直方图时,总感觉直方图提取反了,直到x,y坐标交换才得出正确结果。 找到这篇文章,坐标系以及像素点提取作者介绍的很详细,贴出来提醒自己的同时与大家共同学习。出处:...
  • ...cv::findContours( ) 这个函数是用来找轮廓的,我经常用,应该能解决你这个... 这个函数找到的线存储的数据结构是std::vector<std::vector<cv::Point> > ,这个里面就有你想要的所有的轮廓坐标
  • 菜鸟研究僧来分享最近的工作:python-opencv 像素点转成坐标点 该项目是测量某板的边界并取得边界的平均值计算其偏移量。 首先进行边界检测得到二值图,再对二值图进行y轴的投影。 def ...
  • //功能:实现鼠标左键点击可以返回图像像素坐标、HSV值、RGB值 #include<opencv2/opencv.hpp> #include<iostream> #include<stdio.h> using namespace cv; using namespace std; //设置回调函数...
  • 满意答案kfc479推荐于 2017.11....光实现坐标值输出简单的很p_iplImg=cvLoadImage(p_cImgName,1); //p_iplImg表示轮廓图前提为二值图 ,不是二值图中间请加二值化for (int i=0;iheight;i++){for (int j=0;jwidthSte...
  • 之前使用halcon做图形阈值处理时,发现通过鼠标能很方便的查看图像中的每一点坐标和对应像素值,非常好用,后来使用opencv时,发现无法直接查看图像中的某点像素值,很难直观从像素数值的变化上来感受图像的变化,...
  • OpenCV 鼠标点击获取像素坐标 写入txt文件前言直接上代码使用步骤总结系列文章OpenCV图片批量处理OpenCV 鼠标点击获取像素坐标 写入txt文件 (就是本文) 前言 学习计算机视觉的过程中,需要从txt读取像素坐标点,...
  • 基于opencv的已知左右图像坐标求空间中三维坐标,以及已知空间坐标求其在左右图像中的二维坐标
  • I need to get the list of the x and y coordinates of the pixels that the feature matcher selects in the code provided... I'm using Python and OpenCV. Can anyone help me?img1=cv2.imread('DSC_0216.jpg',...
  • OpenCv像素点获取与修改

    千次阅读 2017-06-22 11:27:32
    1、matlab获取彩色图像像素值的方法 img=imread('test.jpg'); img1=img(:,:,1); img2=img(:,:,2);...2、opencv获取图像像素的方法 方法一: IplImage *img = cvLoadImage("Lena.jpg", 0); CvScal
  • opencv 获取圆上的坐标

    千次阅读 2019-12-26 09:35:20
    方法: 创建一个画布 , 在画布上画圆, ...// 获取圆上的坐标 void CalculateAngleOfThePoint::get_circle_coordinates() { cv::Scalar color; int width = _eares; int height = _eares; vecCoordinates.clear(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,838
精华内容 8,735
关键字:

opencv获取像素点坐标