日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 高斯一阶导,将Matlab高斯导数转换为Opencv

發(fā)布時間:2025/4/5 循环神经网络 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 高斯一阶导,将Matlab高斯导数转换为Opencv 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我試圖將我在matlab中制作的舊練習轉(zhuǎn)換為OpenCV。代碼如下。我還沒有找到任何我想要的OpenCv功能,可能是因為其他名稱,然后我的期望。

以每個位置的最大響應作為標簽時,以下是輸出。顯然有些事情。

這里是matlab代碼:

function responses = getBifResponsesEx(im, myEps, sigma, kernelSize)

if ( nargin == 3 )

if ( sigma >= 1 )

kernelSize = 6*sigma + 1;

else

kernelSize = 7;

end

end

responses = zeros(size(im,1), size(im,2), 7);

%

% Gaussian derivatives

%

kernVal = ceil(kernelSize/2) - 1;

x = (-kernVal:kernVal);

g = 1/(2*pi*sigma^2)*exp(-(x.^2./(2*(sigma^2))));

g = g/sum(g);

dg = -2*x/(2*sigma^2).*g*sigma;

ddg = ((2*x/(2*sigma^2)).^2 - 1/(sigma^2)).*g*sigma;

%

% Gaussian convolution of the image

%

s00 = filter2(g, im);

s00 = filter2(g', s00);

s10 = filter2(g', im);

s10 = filter2(dg, s10);

s01 = filter2(g, im);

s01 = filter2(dg', s01);

s11 = filter2(dg, im);

s11 = filter2(dg', s11);

s20 = filter2(g', im);

s20 = filter2(g', s20);

s20 = filter2(ddg, s20);

s02 = filter2(g, im);

s02 = filter2(g, s02);

s02 = filter2(ddg', s02);

%

% Symmetry types - MISSING CODE!!!!

%

lam = sigma^2*(s20+s02);

gam = sigma^2*(sqrt((s20-s02).^2+4*s11.^2));

responses(:,:,1) = myEps*s00;

responses(:,:,2) = 2*sigma*sqrt(s10.^2+s01.^2);

responses(:,:,3) = +lam;

responses(:,:,4) = -lam;

responses(:,:,5) = 2^-.5*(gam+lam);

responses(:,:,6) = 2^-.5*(gam-lam);

responses(:,:,7) = gam;

end這是我轉(zhuǎn)換后的頁面。從我所能看到的情況來看,它與s20,s02的回應相差無幾。任何人都可以告訴我該怎么辦?

void extract_bif_features(const cv::Mat & src,

std::vector<:mat> & dst, BIFParams params)

{

float sigma = params.sigma;

float n=0;

int kernelSize;

if(sigma>=1)

kernelSize = 6*sigma + 1;

else

kernelSize = 7;

cv::Mat gray,p00,p10,p01,p11,p20,p02;

cv::cvtColor(src,gray,CV_BGR2GRAY);

auto kernVal = (int)ceil(kernelSize/2.0) - 1;

cv::Mat_ g(1,kernelSize);float*gp = g.ptr();

cv::Mat_ dg(1,kernelSize);float*dgp = dg.ptr();

cv::Mat_ ddg(1,kernelSize); float*ddgp = ddg.ptr();

cv::Mat_ X(1,kernelSize);float*xp = X.ptr();

auto gsum=0.0f;

for(int x = -kernVal;x<=kernVal;++x)

{

xp[x+kernVal] = x;

gp[x+kernVal] = 1/(2*CV_PI*sigma*sigma)*exp(-(x*x/(2*(sigma*sigma))));

gsum += gp[x+kernVal];

}

g = g/gsum;

cv::multiply((-2*X / (2*sigma*sigma)),g*sigma,dg);

cv::pow((2*X/(2*sigma*sigma)),2,ddg);

ddg -=1/(sigma*sigma);

cv::multiply(ddg,g*sigma,ddg);

std::cout << ddg<< std::endl;

std::cout << dg<< std::endl;

cv::sepFilter2D(gray,p00,CV_32FC1,g,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE); cv::sepFilter2D(gray,p01,CV_32FC1,dg,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE); cv::sepFilter2D(gray,p10,CV_32FC1,g,dg,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE); cv::sepFilter2D(gray,p11,CV_32FC1,dg,dg,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

//NOT SURE HERE

cv::sepFilter2D(gray,p20,CV_32FC1,g,ddg,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

//cv::sepFilter2D(p20,p20,CV_32FC1,1,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE); cv::sepFilter2D(gray,p02,CV_32FC1,g,ddg,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE); //cv::sepFilter2D(p02,p02,CV_32FC1,g,1,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(gray,p20,CV_32FC1,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(p20,p20,CV_32FC1,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(p20,p20,CV_32FC1,ddg,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(gray,p02,CV_32FC1,g,cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(p02,p02,CV_32FC1,g.t(),cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

cv::filter2D(p02,p02,CV_32FC1,ddg.t(),cv::Point(-1,-1),0.0,cv::BORDER_REPLICATE);

dst.resize(6);

auto sigma_square = sigma*sigma;

cv::Mat Lam = sigma_square * (p20+p02);

cv::Mat Gam ;

cv::sqrt((((p20-p02)*(p20-p02))+4*p11*p11),Gam);

Gam *= sigma_square ;

cv::Mat test = p10*p10;

//slop

cv::sqrt(p10*p10 + p01*p01,dst[0]);

dst[0] = dst[0]*2*sigma;//slop

//blob

dst[1] = Lam;

dst[2] = -1*Lam;

//line

dst[3] = sqrt(2.0f)*(Gam+Lam);

dst[4] = sqrt(2.0f)*(Gam-Lam);

//saddle

dst[5] = Gam;

}

總結(jié)

以上是生活随笔為你收集整理的matlab 高斯一阶导,将Matlab高斯导数转换为Opencv的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人一级 | 亚洲国产精品成人无久久精品 | 欧美壮男野外gaytube | 四虎永久在线观看 | 999久久久精品 | 亚洲性久久久 | 性欧美一级 | 亚洲一级一区 | 亚洲av无码专区首页 | 国产成人久久777777 | 男男一级淫片免费播放 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 色婷婷中文字幕 | 丰满岳跪趴高撅肥臀尤物在线观看 | 国模吧无码一区二区三区 | 艳妇臀荡乳欲伦交换gif | 国产成人专区 | 欧美亚洲精品在线观看 | 丁五月 | 久久久久女教师免费一区 | 波多野结衣免费视频观看 | 永久免费不卡在线观看黄网站 | 亚洲国产欧美在线观看 | www夜夜| 亚洲精品免费观看 | 欧美日韩一区二区综合 | 中文无码精品一区二区三区 | 在线观看你懂的视频 | 国产乱淫av公 | 中文字幕88页| 嫩草国产在线 | 2021av在线| jizz18欧美18| 天天操天天插天天干 | 国产微拍一区 | 欧美极品jizzhd欧美 | 99热日韩| 桃色激情网 | 依依成人在线视频 | 亚洲黄色三级视频 | 黄色片视频免费在线观看 | 欧美激情视频一区二区三区 | 黄瓜视频在线观看 | 亚洲一区h | 国产精品日韩欧美大师 | 丁香花五月天 | 波多野吉衣在线视频 | 天天综合色网 | 日韩一区二区三区电影 | 国产日韩精品一区二区三区在线 | 日本熟妇一区二区三区四区 | 日本激情久久 | 欧美a级在线免费观看 | 亚洲三级影视 | 日本黄色xxxxx | 免费在线看黄的网站 | 免费精品在线观看 | 久久久久久久美女 | 亚洲天堂不卡 | 精品久久久久久久久久久久久久久久久 | 69久久夜色精品国产69 | 精品亚洲一区二区三区四区五区高 | 国产xxx视频 | 97视频免费看 | 91av免费看 | 亚洲av综合色区 | 天天干天天干 | 丝袜老师办公室里做好紧好爽 | 观看av在线| 日本 奴役 捆绑 受虐狂xxxx | 麻豆免费在线观看视频 | 黄色小视频在线观看 | 最好看的电影2019中文字幕 | 日本少妇久久 | 能在线观看的av网站 | 综合色小说 | 中文字幕亚洲天堂 | 久久久精品免费视频 | 99精品视频免费在线观看 | 亚洲精品高清无码视频 | 性做久久久久久久免费看 | 国产综合视频一区二区 | 银杏av | 蜜桃av乱码一区二区三区 | 免费三片在线观看网站v888 | 欧美一区二区三区免费在线观看 | 日韩精品一区二区av | 18欧美性xxxx极品hd | 秋霞午夜视频 | 不卡视频一区二区 | zoo性欧美 | 日本一区二区三区免费看 | 天天躁夜夜躁狠狠躁 | 国产乱码精品一品二品 | 福利亚洲| 欧美精品久久99 | 亚洲一区二区三区播放 | av片免费播放 | 亚洲九区|