网站备案照,做网站导航条怎么弄,做调研有哪些网站,网页模板源代码平滑处理
Opencv实战#xff1a; Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是…平滑处理
Opencv实战 Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 文章目录 平滑处理1.均值滤波2.方框滤波3.高斯滤波4.中值滤波5.双边滤波 常见函数(1).createTrackbar()(2).SetMouseCallback() 图像的平滑处理是在尽量图像原有信息的情况下过滤掉图像内部的噪声。由于图像平滑处理的同时通常伴随着图像的模糊操作有时图像平滑处理也称为图像模糊处理。使用滤波器模板确定的邻域内像素的平均/加权平均灰度值代替图像中每个像素的值。平滑线处理滤波器也称均值滤波器
1.均值滤波
dst cv2.blur(src, ksize, anchor, borderType)2.方框滤波
dst cv2.boxFilter(src, ddepth, ksize, anchor, normalize, borderType)3.高斯滤波
dst cv2.GauusianBlur(src, ksize, sigmaX, sigmaY, borderType)4.中值滤波
dst cv2.medianBlur(src, ksize)5.双边滤波
边缘滤波保留是一种图像处理技术旨在在应用滤波器时保留图像中的边缘信息。在图像处理中滤波器通常用于平滑图像或者增强特定的图像特征但是滤波器也可能导致边缘信息的模糊或丢失。通过在滤波过程中保留边缘信息从而在平滑图像的同时保持图像中的边缘清晰度
dst cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst, borderType)d过滤过程中每个像素邻域的直径范围。如果不是正数则函数会从参数 sigmaSpace 计算该值 sigmaColor颜色空间过滤器的 sigma 值参数的值越大表明该像素邻域内有越宽广的颜色会被混合到一起产生较大的半等色区域 sigmaSpace坐标空间中滤波器的 sigma 值如果该值较大则意味着越远的像素将相互影响从而使更大的区域中足够相似的颜色获取相同的颜色。当 d0 时d 指定了邻域大小且与 sigmaSpace 无关否则 d 正比于 sigmaSpace。
一般将 sigmaSpace设置大一些sigmaColor 设置小一些最终呈现的效果较好。ygtr21
常见函数
(1).createTrackbar()
C: int createTrackbar(conststring trackbarname, conststring winname,int* value, int count, TrackbarCallback onChange0,void* userdata0);第一个参数const string类型的trackbarname表示轨迹条的名字 第二个参数const string类型的winname窗口的名字 第三个参数int* 类型的value一个指向整型的指针表示滑块的位置。并且在创建时滑块的初始位置就是该变量当前的值。 第四个参数int类型的count表示滑块可以达到的最大位置的值。滑块最小的位置的值始终为0。 第五个参数TrackbarCallback类型的onChange默认值0。这是一个指向回调函数的指针每次滑块位置改变时这个函数都会进行回调。并且这个函数的原型必须为void XXXX(int,void*);其中第一个参数是轨迹条的位置第二个参数是用户数据看下面的第六个参数。如果回调是NULL指针表示没有回调函数的调用仅第三个参数value有变化。 第六个参数void*类型的userdata他也有默认值0。这个参数是用户传给回调函数的数据用来处理轨迹条事件。如果使用的第三个参数value实参是全局变量的话完全可以不去管这个userdata参数。
(2).SetMouseCallback() void setMousecallback(const string winname, MouseCallback onMouse, void* userdata0)// winname:窗口的名字// onMouse:鼠标响应函数回调函数。指定窗口里每次鼠标时间发生的时候被调用的函数指针。void on_Mouse(int event, int x, int y, int flags, void* param);// event是 CV_EVENT_*变量之一// x和y是鼠标指针在图像坐标系的坐标不是窗口坐标系 // flags是CV_EVENT_FLAG的组合 param是用户定义的传递到setMouseCallback函数调用的参数。event 具体说明如下 EVENT_MOUSEMOVE 0 //滑动 EVENT_LBUTTONDOWN 1 //左键点击 EVENT_RBUTTONDOWN 2 //右键点击 EVENT_MBUTTONDOWN 3 //中键点击 EVENT_LBUTTONUP 4 //左键放开 EVENT_RBUTTONUP 5 //右键放开 EVENT_MBUTTONUP 6 //中键放开 EVENT_LBUTTONDBLCLK 7 //左键双击 EVENT_RBUTTONDBLCLK 8 //右键双击 EVENT_MBUTTONDBLCLK 9 //中键双击
flags 具体说明如下 EVENT_FLAG_LBUTTON 1 //左键拖曳 EVENT_FLAG_RBUTTON 2 //右键拖曳 EVENT_FLAG_MBUTTON 4 //中键拖曳 EVENT_FLAG_CTRLKEY 8 //(8~15)按 Ctrl 不放 EVENT_FLAG_SHIFTKEY 16 //(16~31)按 Shift 不放 EVENT_FLAG_ALTKEY 32 //(32~39)按 Alt 不放