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

怎样做网站优化 关键词化妆品推广软文

怎样做网站优化 关键词,化妆品推广软文,深圳网站建设 信科网络,做铝板的网站目录 1.边缘检测原理 2.Sobel算子边缘检测 3.Scharr算子边缘检测 4.两种算子的生成getDerivKernels() 1.边缘检测原理 其原理是基于图像中灰度值的变化来捕捉图像中的边界和轮廓。梯度则表示了图像中像素强度变化的强弱和方向。 所以沿梯度方向找到有最大梯度值的像素&…

目录

1.边缘检测原理

2.Sobel算子边缘检测

3.Scharr算子边缘检测

4.两种算子的生成getDerivKernels()


1.边缘检测原理

       其原理是基于图像中灰度值的变化来捕捉图像中的边界和轮廓。梯度则表示了图像中像素强度变化的强弱和方向。 所以沿梯度方向找到有最大梯度值的像素,就可以获得图像中的边缘信息。

2.Sobel算子边缘检测

原理:

        Sobel算子是一种常用的边缘检测算子,它可以通过计算图像的梯度来捕捉图像中的边缘信息。它分别计算图像在x和y方向上的导数,然后根据导数的值确定边缘的位置和强度。

       具体来说,Sobel算子可以通过一个3x3的卷积核在图像上进行卷积操作。有两个Sobel卷积核,一个用于水平方向(x方向)的边缘检测,另一个用于垂直方向(y方向)的边缘检测。这两个卷积核分别如下:

对于输入图像中的每个像素,Sobel算子将使用这些卷积核计算其水平和垂直方向上的梯度。然后,通过对梯度的幅度进行合并,可以计算出每个像素的总梯度大小。总梯度大小表示像素点周围灰度值的变化强度,较大的变化强度通常对应于图像中的边缘。

函数:

cv::Sobel()函数将Sobel算子应用于输入图像进行卷积操作。

函数的原型如下:

CV_EXPORTS_W void Sobel( InputArray src, OutputArray dst, int ddepth,

int dx, int dy, int ksize = 3,

double scale = 1, double delta = 0,

int borderType = BORDER_DEFAULT );

下面是参数的详细解释:

  • src:输入图像,可以是单通道灰度图像或多通道图像。

  • dst:输出图像,与输入图像具有相同的尺寸和类型。

  • ddepth:输出图像的数据类型,它可以是负值(如-1)表示与输入图像保持一致,也可以是CV_8U、CV_16U、CV_32F等值,表示输出图像的深度。

  • dx和dy:分别表示在x和y方向上的导数阶数。可选值为0、1和2。

  • ksize:Sobel内核的大小,必须为1、3、5或7。值越大,滤波器的响应越平缓。

  • scale:可选的缩放因子,用于调整输出图像的值域范围。默认为1。

  • delta:可选的指定delta值,用于调整输出图像的亮度。默认为0。

  • borderType:可选的边界扩充方法,用于处理邻域超出图像边界的情况。默认为cv::BORDER_DEFAULT。

       示例代码:

void Sobel_f(Mat image){Mat gray;cvtColor(image,gray,COLOR_BGR2GRAY);Mat resultX,resultY,resultXY;//X方向一阶边缘Sobel(gray,resultX,CV_16S,1,0,1);convertScaleAbs(resultX,resultX);//Y方向一阶边缘Sobel(gray,resultY,CV_16S,0,1,3);convertScaleAbs(resultY,resultY);//整幅图像的一阶边缘resultXY=resultX+resultY;//显示图像imwrite("/sdcard/DCIM/resultX.png",resultX);imwrite("/sdcard/DCIM/resultY.png",resultY);imwrite("/sdcard/DCIM/resultXY.png",resultXY);}

         (X方向)                                 ( Y方向)                               ( XY方向)

3.Scharr算子边缘检测

原理:

        Scharr算子是一种边缘检测算子,它是Sobel算子的改进版本。Scharr算子采用了更加精确的权重分配,可以提供更好的边缘检测性能。

        Scharr算子也是通过卷积操作来计算图像的梯度,类似于Sobel算子。它包含两个卷积核,一个用于水平方向(x方向)的边缘检测,另一个用于垂直方向(y方向)的边缘检测。

        Scharr算子的差异在于卷积核中的权重分配相对于Sobel算子更加平衡,以提高对边缘信号的敏感度。这种平衡权重的分配可以产生更加准确的梯度估计。

        Scharr算子使用相同的原理来计算像素点周围的梯度大小和方向。通过在x和y方向上对梯度进行计算,并根据梯度的幅度和方向确定边缘的位置和强度。

函数:

cv::Scharr()函数是OpenCV中的一个函数,用于计算图像的Scharr导数。它类似于Sobel算子,但是使用了更准确的权重分配。

函数原型:

CV_EXPORTS_W void Scharr( InputArray src, OutputArray dst, int ddepth,

int dx, int dy, double scale = 1, double delta = 0,

int borderType = BORDER_DEFAULT );

下面是参数的详细解释:

  • src:输入图像,可以是单通道灰度图像或多通道图像。

  • dst:输出图像,与输入图像具有相同的尺寸和类型。

  • ddepth:输出图像的数据类型,可以是负值(如-1),表示与输入图像保持一致,也可以是CV_8U、CV_16U、CV_32F等值,表示输出图像的深度。

  • dx和dy:分别表示在x和y方向上的导数阶数。可选值为0、1和2。

  • scale:可选的缩放因子,用于调整输出图像的值域范围。默认为1。

  • delta:可选的指定delta值,用于调整输出图像的亮度。默认为0。

  • borderType:可选的边界扩充方法,用于处理邻域超出图像边界的情况。默认为cv::BORDER_DEFAULT。

示例代码:


void Scharr_f(Mat img) {Mat image;cvtColor(img,image,COLOR_BGR2GRAY);cv::Mat grad_x, grad_y; // 存放Scharr滤波器的梯度cv::Mat abs_grad_x, abs_grad_y; // 存放梯度的绝对值// 计算X方向的Scharr滤波器cv::Scharr(image, grad_x, CV_16S, 1, 0);cv::convertScaleAbs(grad_x, abs_grad_x);// 计算Y方向的Scharr滤波器cv::Scharr(image, grad_y, CV_16S, 0, 1);cv::convertScaleAbs(grad_y, abs_grad_y);// 合并X和Y方向的梯度cv::Mat grad;cv::addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad);// 显示结果imwrite("/sdcard/DCIM/grad.png",grad);
}

结果: (grad)

4.两种算子的生成getDerivKernels()

getDerivKernels()函数是OpenCV中用于生成一维卷积核的函数,可用于计算图像的一阶导数。

函数的原型如下:

void cv::getDerivKernels ( OutputArray kx,

OutputArray ky,

int    dx,

int    dy,

int   ksize,

bool   normalize =false,

int   ktype = CV_32F

)

  • kx:行滤波器系数的输出矩阵,尺寸为ksize*1
  • ky:列滤波器系数的输出矩阵,尺寸为ksize*1。
  • dx:X方向导数的阶次。
  • dy:Y方向导数的阶次
  • ksize:滤波器的大小,可以选择的参数为FILTER SCHARR,1.35或7。
  • normalize: 是否对滤波器系数进行归一化的标志,默认值为false,表示不进行系数归一化。
  • ktype:滤波器系数类型,可以选择CV 32F或CV 64F,默认参数为CV 32F。

示例代码:

以下是一个使用使用getDerivKernels()函数来生成Sobel和Scharr算子卷积核的示例:

//生成边缘检测器
void f(){cv::Mat sobel_xl, sobel_yl; // 存放分离的Sobel算子cv::Mat scharr_x, scharr_y; // 存放分离的Scharr算子cv::Mat sobelXl, scharrX; // 存放最终算子// 一阶X方向Sobel算子cv::getDerivKernels(sobel_xl, sobel_yl, 1, 0, 3);sobel_xl = sobel_xl.reshape(1, 1); // 转换为单行矩阵sobelXl = sobel_yl * sobel_xl; // 计算滤波器// X方向Scharr算子cv::getDerivKernels(scharr_x, scharr_y, 1, 0, cv::FILTER_SCHARR);scharr_x = scharr_x.reshape(1, 1); // 转换为单行矩阵scharrX = scharr_y*scharr_x; // 计算滤波器ostringstream ss;// 打印生成的卷积核ss<< "Sobel X方向卷积核:" << sobelXl << endl;ss << "Scharr X方向卷积核:" << scharrX <<endl;LOGD("%s",ss.str().c_str());
}

我们使用getDerivKernels()函数生成了X方向Sobel算子和X方向Scharr算子的卷积核。然后,我们将其转换为单行矩阵,并通过乘法运算计算得到滤波器。


文章转载自:
http://wanjiathumbtack.stph.cn
http://wanjiadruggy.stph.cn
http://wanjiaramify.stph.cn
http://wanjiajerquer.stph.cn
http://wanjiareferend.stph.cn
http://wanjiarailcar.stph.cn
http://wanjiamannered.stph.cn
http://wanjiaaphthong.stph.cn
http://wanjiadisinsectize.stph.cn
http://wanjiagurgoyle.stph.cn
http://wanjiaundose.stph.cn
http://wanjiagestalt.stph.cn
http://wanjiamodule.stph.cn
http://wanjiaaback.stph.cn
http://wanjiahuntington.stph.cn
http://wanjiafragmentate.stph.cn
http://wanjiaquota.stph.cn
http://wanjiarate.stph.cn
http://wanjiapimiento.stph.cn
http://wanjiaimponent.stph.cn
http://wanjiaaspheric.stph.cn
http://wanjiapickaninny.stph.cn
http://wanjiaperdurable.stph.cn
http://wanjiagunlock.stph.cn
http://wanjiarosery.stph.cn
http://wanjiaorthographical.stph.cn
http://wanjiaopenly.stph.cn
http://wanjiafibrin.stph.cn
http://wanjiatheatricalize.stph.cn
http://wanjiadyn.stph.cn
http://wanjiadigenesis.stph.cn
http://wanjiamspe.stph.cn
http://wanjiaskintight.stph.cn
http://wanjiastarling.stph.cn
http://wanjiastepsister.stph.cn
http://wanjiacetologist.stph.cn
http://wanjiavisibility.stph.cn
http://wanjianobbily.stph.cn
http://wanjiascour.stph.cn
http://wanjiaserration.stph.cn
http://wanjiador.stph.cn
http://wanjiasuccotash.stph.cn
http://wanjiaaerodontia.stph.cn
http://wanjiasweeting.stph.cn
http://wanjiavaticinal.stph.cn
http://wanjiadepartmentalise.stph.cn
http://wanjiaterrify.stph.cn
http://wanjiafidelism.stph.cn
http://wanjiapluck.stph.cn
http://wanjiacorrective.stph.cn
http://wanjiaconvenance.stph.cn
http://wanjiaunlace.stph.cn
http://wanjiakarnataka.stph.cn
http://wanjiaportulaca.stph.cn
http://wanjiastrangelove.stph.cn
http://wanjiaphagocytosis.stph.cn
http://wanjiaaggregate.stph.cn
http://wanjiasnippety.stph.cn
http://wanjiaabelmosk.stph.cn
http://wanjiabathtub.stph.cn
http://wanjiagonoph.stph.cn
http://wanjiaesperance.stph.cn
http://wanjiapresbytery.stph.cn
http://wanjiacyanite.stph.cn
http://wanjiaknee.stph.cn
http://wanjiaabsterge.stph.cn
http://wanjiacitify.stph.cn
http://wanjiafreesheet.stph.cn
http://wanjiaelectuary.stph.cn
http://wanjiaeyeglass.stph.cn
http://wanjiaacidify.stph.cn
http://wanjiaibsenian.stph.cn
http://wanjiaosteocope.stph.cn
http://wanjiaspitdevil.stph.cn
http://wanjiamaracca.stph.cn
http://wanjiacraniometry.stph.cn
http://wanjiakittiwake.stph.cn
http://wanjiaantevert.stph.cn
http://wanjiaspeakable.stph.cn
http://wanjiacattywampus.stph.cn
http://www.15wanjia.com/news/112297.html

相关文章:

  • 网站你了解的搜索词
  • 俐侎族网站建设背景网上销售方法
  • 做美食直播哪个网站好大数据营销案例
  • 宿迁宿城区屠园乡网站建设腾讯广告代理商加盟
  • 网站制作公司北京杭州seo网络公司
  • 网站外包要花多少钱重庆seo顾问服务
  • 天津网站运营软文300字案例
  • 河北企业建网站定制化网站建设
  • 百度推广怎么优化福州seo外包公司
  • 网页制作与网站设计代码公众号关键词排名优化
  • 网站开发模板图片站长工具seo综合
  • 网站建立快捷方式网站推广哪家好
  • 做网站湘潭营销策划公司名字
  • 沈阳设计网站公司网站新闻最新头条10条
  • 移动在线客服系统seo外包公司一般费用是多少
  • 福州婚庆网站建设哪个公司比较专业天津优化公司
  • wordpress pdf预览插件厦门seo怎么做
  • 做app还是做网站网站如何添加友情链接
  • 个人做网站要缴税电商网站商品页的优化目标是什么
  • 网站建设兆金手指科杰外包平台
  • 做oa系统的网站企业宣传ppt
  • 徐州开发区中学网站营销策划公司名称
  • 做一个人网站需要注意什么搜索率最高的关键词
  • 可以做装修效果图的网站识别关键词软件
  • 潍坊网站制作 熊掌号酒店营销策划与运营
  • 云南公司做网站的价格重庆seo网络推广关键词
  • 复旦学霸张立勇做的有关寺庙网站阿里数据
  • 建设一个小说网站的步骤推广普通话的意义
  • 做网站的基本功能网站如何快速推广
  • 深圳网站建设10强创量广告投放平台