opencv中如何提取用圆圈框住的区域
时间: 2024-02-21 20:57:19 浏览: 126
opencv区域提取
()
if name == "":
messagebox.showinfo("错误", "请填写要查询的学生姓名")
return
c.execute("SELECT * FROM students WHERE name=?", (name,))
rows = c.fetchall()
if not rows:
messagebox.showinfo要提取用圆圈框住的区域,可以使用OpenCV中的ROI(Region of Interest,感兴趣区域("错误", "没有找到该学生的信息")
return
listbox.delete(0, END)
for row in)操作。具体操作步骤如下:
1. 加载图像到Mat对象中。
2. 使用circle()方法画 rows:
listbox.insert(END, f"编号:{row[0]} 姓名:{row[1]} 年龄:{row[2]} 性别:{row[3]} 成绩:{row[4]}")
```
在上述代码中,我们出圆圈框住感兴趣区域。
3. 使用Rect()方法创建一个矩形对象,该矩形对象的左首先获取用户输入的学生姓名,如果没有输入,则弹出错误提示框。否则,我们从数据库中查询上角坐标为圆心坐标减去半径,宽度和高度为半径的两倍。
4. 使用该学生的信息,如果没有找到,则弹出错误提示框。否则,我们清空Listbox控件并将Mat对象的roi()方法获取圆圈框住的区域。
例如,下面的代码可以提取圆圈框住的查询结果插入到Listbox控件中。
最后是排序学生信息的函数:
```python
def sort_student():
c.execute("SELECT * FROM students ORDER BY grade DESC")
rows = c.fetchall()
listbox.delete(0, END)
for区域:
```
Mat image = imread("test.jpg");
Point center(100, 100); // 圆心坐标
int radius row in rows:
listbox.insert(END, f"编号:{row[0]} 姓名:{row[1]} 年龄: = 50; // 圆半径
circle(image, center, radius, Scalar(0, 0, 255), 2);{row[2]} 性别:{row[3]} 成绩:{row[4]}")
```
在上述代码中 // 画圆
Rect roi_rect(center.x - radius, center.y - radius, radius * 2, radius * 2); //,我们从数据库中查询所有学生的信息,并按照成绩从高到低排序。然后,我们清空List 创建矩形ROI
Mat roi = image(roi_rect); // 获取圆圈框住的区域
imshow("ROI", roi);box控件并将查询结果插入到Listbox控件中。
最后,我们需要创建一个函数,用于显示所有学生的信息:
```python
def show_all_students():
c.execute("SELECT * FROM students")
rows = c.fetchall()
// 显示ROI
```
这里使用了Rect()方法创建了一个矩形对象,该矩形对象的左上角坐 listbox.delete(0, END)
for row in rows:
listbox.insert(END, f"编号:{row[0标为圆心坐标减去半径,宽度和高度为半径的两倍。然后使用Mat对象的]} 姓名:{row[1]} 年龄:{row[2]} 性别:{row[3]} 成绩:{rowroi()方法获取圆圈框住的区域,最后显示ROI。
阅读全文