opencv求图像个点像素坐标
时间: 2023-07-06 18:20:57 浏览: 84
要求一个像素点的坐标,需要知道该像素点的行列坐标。在OpenCV中,图像的行列坐标是从左上角开始的,其中行坐标表示图像中的第几行,列坐标表示图像中的第几列。因此,如果想要获取图像中某个像素点的坐标,需要知道该像素点的行列坐标。
可以通过以下代码获取图像中某个像素点的坐标:
```
cv::Mat image = cv::imread("image.png"); // 读取图像
int row = 100; // 像素点所在行
int col = 200; // 像素点所在列
cv::Point2i pixel(col, row); // 创建像素点坐标
```
上述代码中,cv::Mat表示图像矩阵,cv::imread函数用于读取图像,row和col分别表示像素点所在的行和列,cv::Point2i表示一个二维坐标点,通过col和row创建像素点坐标。
相关问题
opencv显示图像像素坐标
要在 OpenCV 中显示图像的像素坐标,你可以使用 `cv2.imshow()` 函数来显示图像,并使用 `cv2.setMouseCallback()` 函数设置鼠标回调函数来获取鼠标点击事件的坐标。下面是一个示例代码:
```python
import cv2
def mouse_callback(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
print("Clicked pixel coordinates: ({}, {})".format(x, y))
image = cv2.imread('path_to_image.jpg')
cv2.namedWindow('Image')
cv2.setMouseCallback('Image', mouse_callback)
while True:
cv2.imshow('Image', image)
if cv2.waitKey(1) & 0xFF == 27: # 按下 ESC 键退出
break
cv2.destroyAllWindows()
```
在这个示例中,`mouse_callback()` 函数会在鼠标左键点击事件发生时被调用,并打印出所点击的像素坐标。你可以将图像路径替换为你自己的图像路径,然后运行这段代码以查看图像并获取像素坐标。
opencv鼠标点击获得图像像素点坐标代码C
下面是一个使用OpenCV实现鼠标点击获得图像像素点坐标的简单示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
void onMouse(int event, int x, int y, int flags, void* param);
int main()
{
// 读取图像
Mat image = imread("test.jpg");
// 创建窗口并显示图像
namedWindow("image", WINDOW_NORMAL);
imshow("image", image);
// 设置鼠标回调函数
setMouseCallback("image", onMouse, &image);
waitKey(0);
return 0;
}
void onMouse(int event, int x, int y, int flags, void* param)
{
Mat* image = (Mat*)param;
switch (event)
{
case EVENT_LBUTTONDOWN:
// 获取像素点颜色值
Vec3b bgr = image->at<Vec3b>(y, x);
std::cout << "x=" << x << ", y=" << y << ", B=" << (int)bgr[0] << ", G=" << (int)bgr[1] << ", R=" << (int)bgr[2] << std::endl;
break;
}
}
```
在该示例代码中,使用`setMouseCallback`函数设置鼠标回调函数`onMouse`。当鼠标在图像窗口内点击左键时,会调用`onMouse`函数,获取鼠标点击的像素点坐标,并通过`at`函数获取该像素点的颜色值。最后将像素点坐标和颜色值输出到控制台。