opencv模糊图像

卷积算子—掩模
Smooth/Blur给图像预处理时降低噪声。
卷积是从左向右,从上向下移动。
是这个卷积算子边缘的值乘以大图的像素,然后相加,放在最中央。

边缘像素如何处理?
向外扩张

均值滤波
高斯滤波 他们都是线性滤波

均值模糊:
blur(Mat src,Mat dst,Size(x,y),Point(-1,-1));

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src,dst;
	src = imread("d:/940.jpg");
	if (src.empty()) {
		cout << "not load..." << endl;
		return -1;
	}
	char input_title[] = "input";
	namedWindow(input_title, WINDOW_AUTOSIZE);
	namedWindow("output", WINDOW_AUTOSIZE);
	imshow(input_title, src);

	blur(src, dst, Size(3, 3), Point(-1, -1));//x方向模糊
	imshow("output", dst);

	GaussianBlur(src, dst, Size(3, 3), 11, 11);
	imshow("output2", dst);
	waitKey(0);
	return 0;
}
在使用 OpenCV 提从模糊图像中提取轮廓的过程中,通常需要结合图像预处理步骤以增强边缘信息,并通过适当的阈值设置来获得清的二值图像。以下是一个完整的流程: ### 图像模糊与轮廓提取的基本流程 1. **图像读取与灰度化** 首先将输入图像转换为灰度图像,以便后续处理。 2. **图像模糊处理** 使用高斯模糊(`cv2.GaussianBlur`)或均值模糊(`cv2.blur`)来减少图像中的噪声,这一步有助于提高轮廓检测的准确性。 3. **边缘检测** 利用 Canny 边缘检测器(`cv2.Canny`)识别图像中的边缘。 4. **寻找轮廓** 使用 `cv2.findContours` 函数提取图像中的轮廓。 5. **绘制轮廓** 使用 `cv2.drawContours` 在原图或空白图像上绘制检测到的轮廓。 ### 示例代码 ```python import cv2 import numpy as np # 读取图像并转换为灰度图像 image = cv2.imread('blurred_image.jpg') gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 对图像进行高斯模糊处理 blurred = cv2.GaussianBlur(gray, (5, 5), 0) # 使用Canny进行边缘检测 edged = cv2.Canny(blurred, 75, 200) # 查找轮廓 contours, _ = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 绘制所有轮廓 contour_image = np.zeros_like(gray) cv2.drawContours(contour_image, contours, -1, (255, 255, 255), 2) # 显示结果 cv2.imshow("Blurred Image", blurred) cv2.imshow("Edges", edged) cv2.imshow("Contours", contour_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` ### 关键点说明 - **图像模糊的作用**:降低图像噪声,使边缘更连贯[^2]。 - **Canny边缘检测参数**:`75` 和 `200` 是高低阈值,用于控制边缘连接的灵敏度。 - **轮廓检索模式**:`cv2.RETR_EXTERNAL` 表示只检测最外层轮廓;若需检测所有轮廓层次,可使用 `cv2.RETR_TREE`。 - **轮廓近似方法**:`cv2.CHAIN_APPROX_SIMPLE` 会压缩水平、垂直和对角线方向的轮廓点,保留关键拐点。 ### 轮廓提取的挑战 由于模糊图像本身缺乏清的边缘信息,因此轮廓提取可能面临以下问题: - 边缘断裂,导致无法形成闭合轮廓; - 多个物体边界融合,难以区分独立对象; - 噪声残留影响轮廓精度。 为应对这些问题,可以尝试以下策略: - 调整模糊核大小或使用不同的模糊算法; - 精调 Canny 的阈值; - 使用形态学操作(如膨胀和腐蚀)修复边缘断裂; - 结合其他特征(如颜色分割或区域增长)辅助轮廓提取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值