opencv获取像素点坐标
时间: 2023-07-04 12:23:52 浏览: 266
要获取像素点坐标,你可以使用OpenCV中的Mat对象和其提供的at()方法。例如,假设你有一个名为img的Mat对象,想要获取坐标为(x,y)处的像素点,代码如下:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 获取像素点坐标为(x,y)处的像素点
x, y = 100, 200
pixel_value = img[y, x]
print('坐标为({},{})处的像素值为:{}'.format(x, y, pixel_value))
```
在这里,我们通过at()方法获取了像素点(x,y)处的像素值。需要注意的是,OpenCV中的像素点坐标是(x,y),而不是常见的(y,x)。
相关问题
opencv获取像素点坐标并赋值
要获取像素点坐标并赋值,可以使用OpenCV中的Mat类。Mat类是OpenCV中最基础的数据类型,用于表示图像或矩阵。
下面给出获取像素点坐标并赋值的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('test.jpg')
# 获取图像宽度和高度
height, width = img.shape[:2]
# 获取像素点坐标并赋值
x = 100
y = 200
img[y, x] = [0, 0, 255] # 注意颜色顺序是BGR
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码中,首先使用`cv2.imread`函数读取一张图片,然后使用`shape`属性获取图像的宽度和高度。接着,我们可以使用像素点的坐标来访问和修改像素值。在本例中,我们将像素点`(100, 200)`的颜色值设置为红色。最后,使用`cv2.imshow`函数显示图像,并使用`cv2.waitKey`函数等待用户按下任意键关闭窗口。
opencv提取白色像素点坐标
可以使用OpenCV的cv::inRange函数来提取指定颜色的像素点,然后遍历图像,找到符合条件的像素点坐标。下面是一个示例代码:
```
cv::Mat image = cv::imread("image.jpg"); // 读取图像
cv::Mat mask;
cv::inRange(image, cv::Scalar(255, 255, 255), cv::Scalar(255, 255, 255), mask); // 提取白色像素点
cv::Mat points;
cv::findNonZero(mask, points); // 找到非零像素点坐标
for (int i = 0; i < points.total(); i++) {
cv::Point p = points.at<cv::Point>(i);
std::cout << "x: " << p.x << ", y: " << p.y << std::endl;
}
```
在这个示例中,cv::inRange函数用于提取白色像素点,cv::findNonZero函数用于找到非零像素点坐标。最后遍历points矩阵,输出每个像素点的坐标。
阅读全文