opencv Python 将圆形ROI区域以外置黑代码
时间: 2024-02-07 07:03:05 浏览: 35
以下是使用OpenCV和Python将圆形ROI区域以外置为黑色的代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg')
# 创建与图像大小相同的黑色遮罩
mask = np.zeros_like(image)
# 定义圆心和半径
center = (100, 100)
radius = 50
# 在遮罩上绘制白色圆形
cv2.circle(mask, center, radius, (255, 255, 255), -1)
# 将遮罩应用于原始图像
result = cv2.bitwise_and(image, mask)
# 显示结果图像
cv2.imshow("Result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,你需要将`image.jpg`替换为你要处理的图像路径。这段代码创建了一个与原始图像大小相同的黑色遮罩,并在遮罩上绘制了一个白色圆形ROI区域。然后,通过使用`cv2.bitwise_and`函数将遮罩应用于原始图像,将圆形ROI区域以外的部分置为黑色。最后,代码会显示结果图像。
相关问题
python opencv提取圆形roi区域代码
当然,这是一段用Python和OpenCV提取圆形ROI区域的代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg')
# 将图像转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用霍夫圆变换检测圆形
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=50, param2=30, minRadius=10, maxRadius=100)
# 确保至少检测到一个圆
if circles is not None:
# 将圆心坐标和半径转换为整数
circles = np.round(circles[0, :]).astype("int")
# 遍历检测到的圆
for (x, y, r) in circles:
# 绘制圆和圆心
cv2.circle(image, (x, y), r, (0, 255, 0), 4)
cv2.circle(image, (x, y), 3, (0, 0, 255), -1)
# 提取ROI区域
roi = image[y-r:y+r, x-r:x+r]
# 显示提取的ROI区域
cv2.imshow("ROI", roi)
cv2.waitKey(0)
# 显示结果图像
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,你需要将`image.jpg`替换为你要处理的图像路径。这段代码使用霍夫圆变换检测图像中的圆形,并提取出圆形区域作为ROI(感兴趣区域)。最后,代码会显示原始图像和提取的ROI区域。
opencv python 圆形roi
在OpenCV中,可以使用Python来实现对圆形ROI( of Interest,感兴趣区域)的操作。下面是一个简单的介绍:
1. 首先,导入OpenCV库:
```python
import cv2
```
2. 读取图像:
```python
image = cv2.imread("image.jpg")
```
这里的"image.jpg"是你要处理的图像文件路径。
3. 定义圆心坐标和半径:
```python
center = (x, y) # 圆心坐标
radius = r # 圆的半径
```
你需要根据具体需求设置圆心坐标和半径的数值。
4. 创建掩膜图像:
```python
mask = np.zeros(image.shape[:2], dtype=np.uint8)
cv2.circle(mask, center, radius, (255, 255, 255), -1)
```
这里使用了numpy库创建了一个与原始图像大小相同的全黑掩膜图像,并在掩膜图像上绘制了一个白色的圆形。
5. 应用掩膜:
```python
roi = cv2.bitwise_and(image, image, mask=mask)
```
使用`cv2.bitwise_and()`函数将原始图像与掩膜图像进行按位与操作,得到圆形ROI。
6. 显示结果:
```python
cv2.imshow("ROI", roi)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
使用`cv2.imshow()`函数显示圆形ROI,`cv2.waitKey(0)`等待按键输入,`cv2.destroyAllWindows()`关闭窗口。
这样就可以实现对图像中圆形ROI的提取和显示。