如何用opencv画个日晕
时间: 2023-11-07 17:57:23 浏览: 40
要使用OpenCV绘制日晕,你需要掌握以下步骤:
1.创建一个空白的黑色图像。
2.使用cv2.circle函数绘制白色的圆形。
3.使用cv2.GaussianBlur函数对图像进行高斯模糊,以模拟日晕效果。
4.使用cv2.addWeighted函数将原始图像和模糊图像进行融合。
下面是一个简单的代码示例,可以实现绘制日晕的功能:
```python
import cv2
import numpy as np
# 创建一个空白的黑色图像
img = np.zeros((512, 512, 3), np.uint8)
# 定义圆心和半径
center = (256, 256)
radius = 200
# 使用cv2.circle函数绘制白色的圆形
cv2.circle(img, center, radius, (255, 255, 255), -1)
# 使用cv2.GaussianBlur函数对图像进行高斯模糊
blur = cv2.GaussianBlur(img, (0, 0), 200)
# 使用cv2.addWeighted函数将原始图像和模糊图像进行融合
result = cv2.addWeighted(img, 1, blur, 0.5, 0)
# 显示结果
cv2.imshow("Sunburst", result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行代码后,你可以看到绘制的日晕效果。你可以根据需要调整圆心、半径、高斯模糊参数等来优化效果。
相关问题
如何用c++ opencv画个日晕
以下是使用C++和OpenCV库来绘制日晕的基本步骤:
1. 创建一个黑色背景的空白图像。
2. 选择一个中心点,将其设置为白色。这个中心点将是日晕的核心。
3. 使用一定的半径绘制一系列圆形,从中心点开始,每个圆形都比上一个圆形大一些。每个圆形的颜色逐渐变浅,从白色到黄色、橙色、红色等。
4. 重复步骤3,直到达到所需的直径或颜色变化。
5. 最后,将图像进行模糊处理,以使其看起来更真实。
下面是一个简单的示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个空白的黑色图像
Mat img(500, 500, CV_8UC3, Scalar(0, 0, 0));
// 设置中心点
Point center(img.cols / 2, img.rows / 2);
// 将中心点设置为白色
circle(img, center, 10, Scalar(255, 255, 255), -1);
// 绘制圆形
int radius = 20;
for (int i = 0; i < 10; i++)
{
// 计算当前圆形的颜色
int color_value = 255 - i * 20;
Scalar color(color_value, color_value, color_value);
// 绘制圆形
circle(img, center, radius, color, 2);
// 增加半径
radius += 20;
}
// 模糊处理图像
GaussianBlur(img, img, Size(15, 15), 0);
// 显示图像
imshow("Sunburst", img);
waitKey(0);
return 0;
}
```
这段代码将创建一个500x500的黑色图像,并在中心点绘制一个白色点。然后,它将绘制一系列圆形,每个圆形比上一个圆形大一些,颜色也逐渐变浅。最后,它将对图像进行模糊处理,以使其看起来更真实。
用c++使用opencv画矩形
以下是一个用C++编写的使用OpenCV画矩形的程序:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 读取图像
Mat img = imread("example.jpg");
// 定义矩形的顶点坐标
Point pt1(100, 100);
Point pt2(200, 200);
// 绘制矩形
rectangle(img, pt1, pt2, Scalar(0, 255, 0), 2);
// 显示图像
imshow("image", img);
waitKey(0);
destroyAllWindows();
return 0;
}
```
这个程序使用了OpenCV的 `Mat` 类型来读取图像,并使用 `rectangle()` 函数画出了一个矩形。需要注意的是,OpenCV中的矩形坐标是用 `Point` 类型表示的,所以我们需要使用 `Point` 类型来定义矩形的顶点坐标。最后,我们使用 `imshow()` 函数显示图像,并使用 `waitKey()` 函数等待用户按下按键后再关闭窗口。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)