当前位置: 首页 > news >正文

西安网站建站优化中小企业网站建设服务公司

西安网站建站优化,中小企业网站建设服务公司,做h5页面网站有哪些,wordpress国外空间文章目录 opencv图像卷积操作原理#xff0c;opencv中常用的图像滤波函数一、图像卷积操作原理#xff1a;1、卷积操作原理图#xff1a; 二、opencv常用的图像滤波函数#xff1a;这些函数的主要作用是对图像进行平滑处理或去除噪声(核心目的是减少图像中的噪声#xff0… 文章目录 opencv图像卷积操作原理opencv中常用的图像滤波函数一、图像卷积操作原理1、卷积操作原理图 二、opencv常用的图像滤波函数这些函数的主要作用是对图像进行平滑处理或去除噪声(核心目的是减少图像中的噪声使图像变得更加平滑)1、cv::blur()函数英文全拼blur1函数原型2代码示例 2、cv::boxFilter()函数1函数原型2cv.blur() 均值滤波器与cv.boxFilter() 方框滤波器的区别核的定义参数不同功能略有差异总结 3代码示例 3、cv::GuassianBlur()函数1函数原型2代码示例 4、cv::medianBlur()函数1函数原型2代码示例 5、cv::bilateralFilter()函数1函数原型2代码示例 6、cv2::filter2D()函数1函数原型2代码示例 opencv图像卷积操作原理opencv中常用的图像滤波函数 一、图像卷积操作原理 卷积是图像处理中常用的操作之一它通过在图像上滑动一个滤波器(也称为卷积核)来实现对图像的处理每个滤波器(卷积核)都是一个小的矩阵它包含一组权重值 1、卷积操作原理图 将滤波器(卷积核)与图像的一个小区域相乘将得到的乘积相加得到一个新的像素值通过不断滑动滤波器(卷积核)对整幅图像进行处理从而得到一幅经过卷积操作的图像 计算过程图 二、opencv常用的图像滤波函数这些函数的主要作用是对图像进行平滑处理或去除噪声(核心目的是减少图像中的噪声使图像变得更加平滑) 1、cv::blur()函数英文全拼blur 均值滤波器(平均滤波器)用于图像模糊(平滑)处理的函数它将图像中的每个像素值替换为其周围像素值的平均值从而实现图像的模糊效果 1函数原型 void cv::blur(InputArray src, OutputArray dst, Size ksize, Point anchor Point(-1,-1), int borderType BORDER_DEFAULT );参数解释 src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像 ksize卷积核用cv::Size(width, height)来指定例如(3,3)表示一个3x3的卷积核通常使用奇数大小的核 anchor锚点默认为卷积核的中心默认值Point(-1, -1) borderType图像边缘处的像素填充方式(cv::BORDER_CONSTANT在图像边缘处的像素用常数填充这个常数由cv::Scalar()函数指定默认为黑色cv::BORDER_REPLICATE在图像边缘处的像素用最边界的像素值来填充cv::BORDER_DEFAULT根据具体情况选择最合适的边界处理方式默认值 )2代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat image cv::imread(C:\\cpp\\image\\suzy1.jpg);if (image.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat outputImage;cv::Size kernelSize(5, 5);cv::blur(image, outputImage, kernelSize);cv::imshow(Input Image, image);cv::imshow(Blurred Image, outputImage);cv::waitKey(0);return 0;} 运行结果 2、cv::boxFilter()函数 方框滤波器(均值滤波器的一种变体)方框滤波器与均值滤波器类似通过计算图像中每个像素周围邻域像素的加权平均值来减少噪声但相比 cv::blur()cv::boxFilter()可以指定不同的归一化方式 1函数原型 void cv::boxFilter(cv::InputArray src,cv::OutputArray dst,int ddepth,cv::Size ksize,cv::Point anchor cv::Point(-1,-1),bool normalize true,int borderType cv::BORDER_DEFAULT );参数解释 src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像与输入图像具有相同的尺寸和通道数 ddepth输出图像的深度通常使用-1表示与输入相同 ksize卷积核用cv::Size(width, height)来指定例如(3,3)表示一个3x3的卷积核通常使用奇数大小的核 anchor锚点默认为卷积核的中心默认值Point(-1, -1) normalize是否对结果进行归一化默认为true borderType图像边缘处的像素填充方式(cv::BORDER_CONSTANT在图像边缘处的像素用常数填充这个常数由cv::Scalar()函数指定默认为黑色cv::BORDER_REPLICATE在图像边缘处的像素用最边界的像素值来填充cv::BORDER_DEFAULT根据具体情况选择最合适的边界处理方式默认值 )2cv.blur() 均值滤波器与cv.boxFilter() 方框滤波器的区别 cv::blur() 和 cv::boxFilter() 都是用于图像平滑处理的滤波器它们的核心目的是减少图像中的噪声使图像变得更加平滑 核的定义 cv::blur() 的核是一个归一化的平均核也就是说核内所有元素的和为1这表示在滤波过程中像素值被取平均值cv::boxFilter() 的核不一定是归一化的可以通过 normalize 参数控制是否归一化这使得方框滤波器可以对像素进行加权平均 参数不同 cv::blur() 接受一个 cv::Size 参数作为核的大小通常使用奇数大小的核cv::boxFilter() 接受一个整数参数作为核的大小可以使用偶数大小的核 功能略有差异 由于 cv::boxFilter() 可以选择是否归一化因此它可以用于一些特殊情况下的平滑处理比如图像锐化cv::blur() 更适合通用的平滑处理 总结 总的来说这两个函数都可以用于图像平滑处理选择使用哪个取决于你的具体需求以及想要实现的效果如果你只是需要一个简单的平滑处理通常使用 cv::blur() 就足够了如果你需要更多的控制或者想要尝试一些特殊的滤波效果可以考虑使用 cv::boxFilter() 3代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat image cv::imread(C:\\cpp\\image\\suzy1.jpg);if (image.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat outputImage;cv::Size kernelSize(5, 5);cv::boxFilter(image, outputImage, -1, kernelSize);cv::imshow(Input Image, image);cv::imshow(Box Filtered Image, outputImage);cv::waitKey(0);return 0;}运行结果 3、cv::GuassianBlur()函数 高斯滤波器对输入图像中的每个像素施加一个高斯函数作为权重从而实现平滑处理通过应用高斯滤波器来减少图像中的噪声会较明显地模糊边缘 1函数原型 void cv::GaussianBlur(cv::InputArray src, cv::OutputArray dst, cv::Size ksize, double sigmaX, double sigmaY 0, int borderType cv::BORDER_DEFAULT );参数解释 src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像与输入图像具有相同的尺寸和通道数 ksize卷积核用cv::Size(width, height)来指定例如(3,3)表示一个3x3的卷积核通常使用奇数大小的核 sigmaXX方向的高斯核标准差 sigmaYY方向的高斯核标准差如果为零则默认与sigmaX相同 borderType图像边缘处的像素填充方式(cv::BORDER_CONSTANT在图像边缘处的像素用常数填充这个常数由cv::Scalar()函数指定默认为黑色cv::BORDER_REPLICATE在图像边缘处的像素用最边界的像素值来填充cv::BORDER_DEFAULT根据具体情况选择最合适的边界处理方式默认值 )2代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat inputImage cv::imread(C:\\cpp\\image\\suzy1.jpg);if (inputImage.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat outputImage;cv::Size kernelSize(5, 5);double sigmaX 1.5;cv::GaussianBlur(inputImage, outputImage, kernelSize, sigmaX);cv::imshow(Input Image, inputImage);cv::imshow(Gaussian Blurred Image, outputImage);cv::waitKey(0);return 0;} 运行结果 4、cv::medianBlur()函数 中值滤波器对输入图像进行平滑处理通过用邻域像素的中值来替代当前像素的值从而减少图像中的噪声是一种常用于去除图像中的椒盐噪声(salt-and-pepper noise)的非线性滤波器 1函数原型 void cv::medianBlur(cv::InputArray src, cv::OutputArray dst, int ksize );参数解释 src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像与输入图像具有相同的尺寸和通道数 ksize卷积核通常为奇数用cv::Size(width, height)来指定通常使用奇数大小的核 2代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat inputImage cv::imread(C:\\cpp\\image\\suzy1.jpg);if (inputImage.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat outputImage;int kernelSize 5; // 选择一个奇数大小的核cv::medianBlur(inputImage, outputImage, kernelSize);cv::imshow(Input Image, inputImage);cv::imshow(Median Blurred Image, outputImage);cv::waitKey(0);return 0;} 运行结果 5、cv::bilateralFilter()函数 双边滤波器双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d所以在边缘附近离的较远的像素不会太多影响到边缘上的像素值这样就保证了边缘附近像素值的保存 1函数原型 void cv::bilateralFilter(cv::InputArray src, cv::OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType cv::BORDER_DEFAULT );参数解释src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像与输入图像具有相同的尺寸和通道数 d控制在颜色空间中滤波器的直径通常在3-5之间 sigmaColor控制颜色相似性的标准差值越大颜色差异越大 sigmaSpace控制空间相似性的标准差值越大范围内像素权重越大 borderType图像边缘处的像素填充方式(cv::BORDER_CONSTANT在图像边缘处的像素用常数填充这个常数由cv::Scalar()函数指定默认为黑色cv::BORDER_REPLICATE在图像边缘处的像素用最边界的像素值来填充cv::BORDER_DEFAULT根据具体情况选择最合适的边界处理方式默认值 )2代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat inputImage cv::imread(C:\\cpp\\image\\suzy1.jpg);if (inputImage.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat outputImage;int d 9; // 直径double sigmaColor 75; // 颜色相似性标准差double sigmaSpace 75; // 空间相似性标准差cv::bilateralFilter(inputImage, outputImage, d, sigmaColor, sigmaSpace);cv::imshow(Input Image, inputImage);cv::imshow(Bilateral Filtered Image, outputImage);cv::waitKey(0);return 0;} 运行结果 6、cv2::filter2D()函数 对输入图像进行二维卷积操作通过将一个核应用于图像的每个像素从而实现特定的图像处理效果如边缘检测、模糊等 1函数原型 void cv::filter2D(cv::InputArray src, cv::OutputArray dst, int ddepth, cv::InputArray kernel, cv::Point anchor cv::Point(-1,-1),double delta 0, int borderType cv::BORDER_DEFAULT );参数解释 src输入图像可以是单通道或多通道图像(如灰度图或彩色图) dst输出图像与输入图像具有相同的尺寸和通道数 ddepth输出图像的深度通常使用-1表示与输入相同 kernel卷积核用于定义卷积操作的权重矩阵 anchor锚点默认为卷积核的中心默认值Point(-1, -1) delta可选参数用于调节卷积结果的偏移值默认为0 borderType图像边缘处的像素填充方式(cv::BORDER_CONSTANT在图像边缘处的像素用常数填充这个常数由cv::Scalar()函数指定默认为黑色cv::BORDER_REPLICATE在图像边缘处的像素用最边界的像素值来填充cv::BORDER_DEFAULT根据具体情况选择最合适的边界处理方式默认值 ) 2代码示例 #include opencv2\opencv.hpp #include iostream #include demo.husing namespace cv; using namespace std;int main() {// 读取彩色图像cv::Mat inputImage cv::imread(C:\\cpp\\image\\suzy1.jpg);if (inputImage.empty()) {std::cerr Error: 无法读取图像文件. std::endl;return -1;}cv::Mat kernel (cv::Mat_float(3, 3) 0, -1, 0,-1, 5, -1,0, -1, 0);cv::Mat outputImage;cv::filter2D(inputImage, outputImage, -1, kernel);cv::imshow(Input Image, inputImage);cv::imshow(Filtered Image, outputImage);cv::waitKey(0);return 0;} 运行结果
http://www.w-s-a.com/news/815962/

相关文章:

  • 电子商务网站开发与建设试卷php网站开发专业
  • 运城网站制作路90江苏省网站备案系统
  • 唐山做企业网站实体门店管理系统
  • 网站优化推广教程深圳网站建设世纪前线
  • 网站建设专家哪家好兰州网络推广执行
  • 广东住房和城乡建设厅网站王芃增加网站收录
  • 北京网站建设手机app电子商务网红营销的劣势
  • 网站 营销型wordpress获取4条文章标题
  • 浦东区建设工程监督网站建立全国统一的突发事件信息系统
  • 做网站需要基础吗重庆市造价信息网
  • 我要建设公司网站大连培训网站建设
  • 网站建设校长信箱设计方案小程序报价开发
  • 电子网站建设ppt模板营销策划方案怎么写?
  • 什么网站收录排名最高济南能源建设网站
  • 深圳移动网站建设公司价格桂林做网站哪家公司好
  • 互联网网站名字网站合作建设合同
  • 舟山高端网站设计广州优化排名推广
  • 哪个网站做免费广告好上海人才网站
  • cn域名做网站竞价推广代理
  • 省建设干部培训中心网站网站地图1 500 怎么做
  • 制作一个网站需要哪些人网站建设经营服务合同
  • 山东省住房和城乡建设厅官方网站网易发布广州
  • 长沙设计网站效果设计师灵感网站
  • 做网站php都用什么框架把asp.net写的网站别人怎么访问
  • 网站建设捌金手指下拉六正规的代运营公司
  • 自己申请网站空间冀州建网站
  • 哈尔滨旅游团购网站建设江苏建设工程建设网
  • 在郑州做网站茶叶网站建设网页设计制作
  • 58做网站吗南京有关制作网站的公司
  • 申请建设门户网站的申请先做网站还是先申请域名