2018-06-23 09:08:02 Alphabetic 阅读数 3365
  • Kaggle 神器:XGBoost 从基础到实战

    主讲老师冒老师为计算机博士,现在中科院从事科研教学工作,十余年机器学习教学经验,主持国家级科研项目3项,研究方向为机器学习、计算机视觉及多媒体处理。 XGBoost是"极端梯度提升"(eXtreme Gradient Boosting)的简称。XGBoost源于梯度提升框架,但是能并行计算、近似建树、对稀疏数据的有效处理以及内存使用优化,这使得XGBoost至少比现有梯度提升实现有至少10倍的速度提升。XGBoost可以处理回归、分类和排序等多种任务。由于它在预测性能上的强大且训练速度快,XGBoost已屡屡斩获Kaggle各大竞赛的冠军宝座。

    39266 人正在学习 去看看 AI100讲师

图像在计算机中以数字图像的形式存储,即以数值矩阵的形式存在,形成了离散的数值信号,在此基础上,对于图像处理中的数值的多样性计算分析也影响着初步图像分析。

图像梯度的定义:

图像函数f(x,y)在点(x,y)的梯度是一个具有大小和方向的矢量,设为Gx 和 Gy 分别表示x方向和y方向的梯度,这个梯度的矢量可以表示为:

                                                            

图像梯度:G(x,y)=dx i +dy j;

dx(i,j)=Img(i+1,j)-Img(i,j);

dy(i,j)=Img(i,j+1)-I(i,j);


Img(i,j)是图像数值矩阵的像素值,(i,j)为像素相应坐标。

Gradient(Img)函数求的是数值上的梯度,假设Img为图片数值矩阵.


Matlab中计算方法:

 [Rx,Ry]=gradient(Img);

(1)水平方向梯度Rx,Rx的第一列元素为原矩阵第二列与第一列元素之差,Rx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。

(2)垂直方向梯度Ry,同理,可以得到Fy。


2017-12-14 22:27:34 gangzhucoll 阅读数 1402
  • Kaggle 神器:XGBoost 从基础到实战

    主讲老师冒老师为计算机博士,现在中科院从事科研教学工作,十余年机器学习教学经验,主持国家级科研项目3项,研究方向为机器学习、计算机视觉及多媒体处理。 XGBoost是"极端梯度提升"(eXtreme Gradient Boosting)的简称。XGBoost源于梯度提升框架,但是能并行计算、近似建树、对稀疏数据的有效处理以及内存使用优化,这使得XGBoost至少比现有梯度提升实现有至少10倍的速度提升。XGBoost可以处理回归、分类和排序等多种任务。由于它在预测性能上的强大且训练速度快,XGBoost已屡屡斩获Kaggle各大竞赛的冠军宝座。

    39266 人正在学习 去看看 AI100讲师

一、什么是图像梯度

 

可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导:
图像梯度: G(x,y) = dx i + dy j;
dx(i,j) = I(i+1,j) - I(i,j);
dy(i,j) = I(i,j+1) - I(i,j);
其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。
图像梯度一般也可以用中值差分:
dx(i,j) = [I(i+1,j) - I(i-1,j)]/2;
dy(i,j) = [I(i,j+1) - I(i,j-1)]/2;
图像边缘一般都是通过对图像进行梯度运算来实现的。

图像梯度的最重要性质是,梯度的方向在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化
上面说的是简单的梯度定义,其实还有更多更复杂的梯度公式。(来源百度)

二、示例代码

 

import cv2 as cv
import numpy as np

def sobel(img):
    """索贝尔算子"""
    grad_x=cv.Sobel(img,cv.CV_32F,1,0)
    grad_y=cv.Sobel(img,cv.CV_32F,0,1)
    gradx=cv.convertScaleAbs(grad_x)
    grady = cv.convertScaleAbs(grad_y)
    cv.imshow("x",gradx)
    cv.imshow("y",grady)

    gradxy=cv.addWeighted(gradx,0.5,grady,0.5,0)
    cv.imshow("grad",gradxy)

def scharr(img):
    """某些边缘差异很小的情况下使用"""
    grad_x = cv.Scharr(img, cv.CV_32F, 1, 0)
    grad_y = cv.Scharr(img, cv.CV_32F, 0, 1)
    gradx = cv.convertScaleAbs(grad_x)
    grady = cv.convertScaleAbs(grad_y)
    cv.imshow("x", gradx)
    cv.imshow("y", grady)

    gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0)
    cv.imshow("grad", gradxy)

def lapalian(img):
    """拉普拉斯算子"""
    dst=cv.Laplacian(img,cv.CV_32F)
    lpls=cv.convertScaleAbs(dst)
    cv.imshow("lpls",lpls)

src=cv.imread('15.jpg')
lapalian(src)
cv.waitKey(0)
cv.destroyAllWindows()
觉得不错打赏一下

 

 

 

 

2018-11-15 20:20:11 qq_24163555 阅读数 2998
  • Kaggle 神器:XGBoost 从基础到实战

    主讲老师冒老师为计算机博士,现在中科院从事科研教学工作,十余年机器学习教学经验,主持国家级科研项目3项,研究方向为机器学习、计算机视觉及多媒体处理。 XGBoost是"极端梯度提升"(eXtreme Gradient Boosting)的简称。XGBoost源于梯度提升框架,但是能并行计算、近似建树、对稀疏数据的有效处理以及内存使用优化,这使得XGBoost至少比现有梯度提升实现有至少10倍的速度提升。XGBoost可以处理回归、分类和排序等多种任务。由于它在预测性能上的强大且训练速度快,XGBoost已屡屡斩获Kaggle各大竞赛的冠军宝座。

    39266 人正在学习 去看看 AI100讲师
clear all
clc
I=imread('kids.tif')
[M,N]=size(I);
B1=[-1 -1 -1;0 0 0;1 1 1];//梯度处理水平方向特征明显
B2=[-1 0 1;-1 0 -1;-1 0 -1];//梯度处理竖直方向特征明显
I1=I;
I2=I;
temp=zeros(3,3);//采用3x3的模板进行处理
for i=2:M-1
    for j=2:N-1
        temp=I(i-1:i+1,j-1:j+1);
        temp1=double(temp).*B1;
        temp2=double(temp).*B2;
        t=sum(temp1(:));
        p=sum(temp2(:));
        I1(i,j)=abs(t);
        I2(i,j)=abs(p);
    end
end
I4=I1+I2
//显示部分
subplot(221);imshow(I);
subplot(222);imshow(I1);
subplot(223);imshow(I2);
subplot(224);imshow(I4);

 

2015-06-22 09:56:48 majinlei121 阅读数 460
  • Kaggle 神器:XGBoost 从基础到实战

    主讲老师冒老师为计算机博士,现在中科院从事科研教学工作,十余年机器学习教学经验,主持国家级科研项目3项,研究方向为机器学习、计算机视觉及多媒体处理。 XGBoost是"极端梯度提升"(eXtreme Gradient Boosting)的简称。XGBoost源于梯度提升框架,但是能并行计算、近似建树、对稀疏数据的有效处理以及内存使用优化,这使得XGBoost至少比现有梯度提升实现有至少10倍的速度提升。XGBoost可以处理回归、分类和排序等多种任务。由于它在预测性能上的强大且训练速度快,XGBoost已屡屡斩获Kaggle各大竞赛的冠军宝座。

    39266 人正在学习 去看看 AI100讲师

转自:http://blog.csdn.net/yeqiu712/article/details/6393113

 

 

可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导: 
图像梯度: G(x,y) = dx i + dy j; 
dx(i,j) = I(i+1,j) - I(i,j); 
dy(i,j) = I(i,j+1) - I(i,j); 
其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。 
图像梯度一般也可以用中值差分: 
dx(i,j) = [I(i+1,j) - I(i-1,j)]/2; 
dy(i,j) = [I(i,j+1) - I(i,j-1)]/2; 

图像边缘一般都是通过对图像进行梯度运算来实现的。

 

图像梯度的最重要性质是,梯度的方向在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化 

上面说的是简单的梯度定义,其实还有更多更复杂的梯度公式。


2019-09-05 19:26:12 lengo 阅读数 370
  • Kaggle 神器:XGBoost 从基础到实战

    主讲老师冒老师为计算机博士,现在中科院从事科研教学工作,十余年机器学习教学经验,主持国家级科研项目3项,研究方向为机器学习、计算机视觉及多媒体处理。 XGBoost是"极端梯度提升"(eXtreme Gradient Boosting)的简称。XGBoost源于梯度提升框架,但是能并行计算、近似建树、对稀疏数据的有效处理以及内存使用优化,这使得XGBoost至少比现有梯度提升实现有至少10倍的速度提升。XGBoost可以处理回归、分类和排序等多种任务。由于它在预测性能上的强大且训练速度快,XGBoost已屡屡斩获Kaggle各大竞赛的冠军宝座。

    39266 人正在学习 去看看 AI100讲师
clc;
clear all;
close all;
%灰度梯度测试图像
I=im2double(imread('D:\Gray Files\9-39.tif'));
    
%===============================灰度梯度===================================
%3*3结构元素
n=3;
B=ones(3,3);
n_l=floor(n/2);
%对边界图进行扩充,目的是为了处理边界点,这里采用边界镜像扩展
I_pad=padarray(I,[n_l,n_l],'symmetric');
[M,N]=size(I);
J_Erosion=zeros(M,N);
J_Dilation=zeros(M,N);
J_Gradient=zeros(M,N);
for i=1:M
    for j=1:N
        %获得图像子块区域
        Block=I_pad(i:i+2*n_l,j:j+2*n_l);
        C=Block.*B;
        C=C(:);
        %腐蚀操作
        J_Erosion(i,j)=min(C);
        %膨胀操作
        J_Dilation(i,j)=max(C);
        %灰度梯度
        J_Gradient(i,j)=J_Dilation(i,j)-J_Erosion(i,j);
    end
end
imshow(J_Gradient)

 

没有更多推荐了,返回首页