基于APP Designer完成MATLAB大作业之简易版美图秀秀设计

目录​​​​​​​

一、基础功能

二、添加效果

三、调色

四、美颜

五、贴图

六、相框


一、基础功能

1 导入图片

function ButtonImport(app, event)[filename,pathname]=uigetfile({'*.*';'*.jpg';'*.tif';'*.png';'*.bmp'},'导入图片');%选择图片的格式if isequal(pathname,0)errordlg('未选择文件','错误');%创建错误对话框returnelsefile=[pathname filename];I=imread(file);app.OriginalImage=file;% app.OriginalImage为全局变量,存储原始图像app.ChangedImage=I;% app.ChangedImage为全局变量,存储最近改变的图像app.EffectImage=I;% app.EffectImage为全局变量,与app.ChangedImage作用相似,作为某些功能的读入图像endimshow(I,'Parent',app.UIAxes);end

效果:

2 保存图片

function ButtonSave(app, event)[filename,pathname]=uiputfile({'*.*';'*.jpg';'*.tif';'*.png';'*.bmp'},'保存图片');%选择图片的格式if isequal(pathname,0)msgbox("保存失败!");elseI=fullfile(pathname,filename);% 构建完整文件名imwrite(app.ChangedImage,I);msgbox("保存成功!");endend

效果:

3 重置

function ButtonReset(app, event)app.ChangedImage=imread(app.OriginalImage);%app.OriginalImage为全局变量,存储原始图像imshow(app.ChangedImage,'Parent',app.UIAxes);app.Slider.Value=0;% 令布局中的滑块归为默认位置app.Slider_2.Value=0;app.Slider_3.Value=0;app.Slider_5.Value=0;app.Slider_6.Value=0;end

4 退出

function ButtonExit(app, event)exit=questdlg('是否退出程序?','关闭','Yes','No','No');%创建问题对话框,是否关闭程序,默认为Noswitch exitcase 'Yes'delete(app.UIFigure);%删除APP中的UI图窗returncase 'No'returnendend

效果:

5 旋转

function ButtonRotate(app, event)I=app.ChangedImage;R=imrotate(I,-90);% 顺时针旋转90度app.ChangedImage=R;imshow(app.ChangedImage,'Parent',app.UIAxes);app.EffectImage=R;end

效果:

6 裁剪

function ButtonCrop(app, event)I=app.ChangedImage;imshow(I);% 弹出裁剪弹窗[x,y]=ginput(2);% 识别坐标区区域close;I2=imcrop(I,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);imshow(I2,'Parent',app.UIAxes)app.ChangedImage=I2;app.EffectImage=I2;end

效果:

7 水平翻转

function ButtonH_flip(app, event)I=app.ChangedImage;F=fliplr(I);imshow(F,'Parent',app.UIAxes);app.ChangedImage=F;app.EffectImage=F;end

效果:

8 垂直翻转

function ButtonV_flip(app, event)I=app.ChangedImage;F=flipud(I);imshow(F,'Parent',app.UIAxes);app.ChangedImage=F;app.EffectImage=F;end

效果:

二、添加效果

1 灰度化

function ButtonGray(app, event)I=app.EffectImage;I=im2gray(I);imshow(I,'Parent',app.UIAxes);app.ChangedImage=I;end

效果:

2 黑白

function ButtonBW(app, event)I=app.EffectImage;I=rgb2gray(I);I=im2bw(I);imshow(I,'Parent',app.UIAxes);app.ChangedImage=I;end

效果:

3 底片

function Button_DP(app, event)I=app.EffectImage;I=255-I;I=im2gray(I);imshow(I,'Parent',app.UIAxes);app.ChangedImage=I;end

效果:

4 素描

function ButtonSketch(app, event)I=app.EffectImage;
%             灰度化I_gray=im2gray(I);
%             反色J=255-I_gray;
%             创建8x8高斯滤波器g=fspecial('gaussian',[8 8],8);
%             用滤波器g对图像J进行滤波K=imfilter(J,g);[m,n]=size(I_gray);for i=1:mfor j=1:n
%                     为模糊后的图像添加减淡效果img(i,j)=uint8(min(uint16(I_gray(i,j))+(uint16(I_gray(i,j))*uint16(K(i,j)))/(255-uint16(K(i,j))),255));% 减淡公式endendimshow(img,'Parent',app.UIAxes);app.ChangedImage=img;end

效果:

5 增强

function ButtonStrengthen(app, event)I=app.EffectImage;J=histeq(I);% 直方图均衡化imshow(J,'Parent',app.UIAxes);app.ChangedImage=J;end

效果:

6 模糊

function ButtonBlurred(app, event)I=app.EffectImage;
%             创建运动模糊滤波器PSF=fspecial('motion',25,11);
%             对原图滤波,模糊图像Blurred=imfilter(I,PSF,'conv','circular');imshow(Blurred,'Parent',app.UIAxes);app.ChangedImage=Blurred;end

效果:

7 锐化

function ButtonSharpen(app, event)I=app.EffectImage;I2=im2gray(I);edge=uint8(zeros(size(I2)));h=size(I2,1);w=size(I2,2);for i=1:h-1for j=1:w-1edge(i,j)=uint8(abs(I2(i,j)-I2(i+1,j+1))+abs(I2(i+1,j)-I2(i,j+1)));% Robert算子endendJ=edge+I;imshow(J,'Parent',app.UIAxes);%显示图像edgeapp.ChangedImage=J;end

效果:

8 浮雕

function ButtonRelief(app, event)I=app.EffectImage;[m,n,d]=size(I)for k=1:dfor i=2:m-1for j=2:n-1
%                         浮雕算法卷积公式I2(i,j,k)=I(i+1,j+1,k)-I(i-1,j-1,k)+128;if I2(i,j,k)>255I2(i,j,k)=255;else if I2(i,j,k)<0I2(i,j,k)=0;else I2(i,j,k)=I2(i,j,k);endendendendendimshow(I2,'Parent',app.UIAxes);app.ChangedImage=I2;end

效果:

9 油画

function ButtonOilPaint(app, event)I=app.EffectImage;SE=strel('ball',3,3);P=imerode(I,SE);imshow(P,'Parent',app.UIAxes);app.ChangedImage=P;end

效果:

10 马赛克

function Button_MSK(app, event)
%原图的路径f = app.EffectImage;imshow(f);
% 用imrect框出某一部分t=imrect;
% 其中pos的返回值中有四个参数,[xmin,ymin,width,height],pos=getPosition(t);
% 选取位置结束后关闭窗口close;a=int16(pos(1,1));% xb=int16(pos(1,2));% yc=int16(pos(1,3));% widthd=int16(pos(1,4));% height
% 用imcrop截图g=imcrop(f,pos);gr = g(:,:,1);[h w] = size(gr);
% 截图区域img = g;
%设置马赛克区域n*n像素块大小,一个区域内为同一个颜色值n = 20;nh = floor(h/n)*n;%将不一定是n的整数倍的图像大小化为整数倍nw = floor(w/n)*n;
%对三个通道进行循环处理
%对框处区域做单独均值滤波处理for t = 1:3
%     1为起始值,n为步长,nh为终止值for j = 1:n:nh
%         1为起始值,n为步长,nw为终止值for i = 1:n:nwimg(j:j+n-1, i:i+n-1, t) =mean(mean(g(j:j+n-1, i:i+n-1, t)));%对列进行取均值处理,mean为求数组的均值endimg(j:j+n-1,nw:w , t ) = mean(mean(g(j:j+n-1,nw:w , t)));%处理最后的列endfor i = 1:n:nwimg(nh:h, i:i+n-1, t) = mean(mean(g(nh:h, i:i+n-1, t)));%处理最后的行endimg(nh:h, nw:w, t) = mean(mean(g(nh:h, nw:w , t)));%处理最后的角end
% 将马赛克区域放回到原图像当中f(b:b+d,a:a+c,1:3)=img(:,:,1:3); imshow(f,'Parent',app.UIAxes);app.ChangedImage=f;end

效果:

三、调色

1 色调

function SliderValueChangingSD(app, event)changingValue = event.Value;I=app.ChangedImage;hsv=rgb2hsv(I);hsv(:,:,1)=(changingValue+1)*hsv(:,:,1);hsv(:,:,2)=hsv(:,:,2);hsv(:,:,3)=hsv(:,:,3);img=hsv2rgb(hsv);imshow(img,'Parent',app.UIAxes);app.HSV2=img;end

效果:

2 饱和度

function Slider_2ValueChangingBHD(app, event)changingValue = event.Value;I=app.HSV2;hsv=rgb2hsv(I);hsv(:,:,2)=(changingValue+1)*hsv(:,:,2);hsv(:,:,1)=hsv(:,:,1);hsv(:,:,3)=hsv(:,:,3);img=hsv2rgb(hsv);imshow(img,'Parent',app.UIAxes);app.HSV1=img;end

效果:

3 明度

function Slider_3ValueChangingLD(app, event)changingValue = event.Value;I=app.HSV1;hsv=rgb2hsv(I);hsv(:,:,3)=(changingValue+1)*hsv(:,:,3);hsv(:,:,1)=hsv(:,:,1);hsv(:,:,2)=hsv(:,:,2);img=hsv2rgb(hsv);imshow(img,'Parent',app.UIAxes);app.ChangedImage=img;end

效果:

四、美颜

1 美白

function Slider_5ValueChangingBeauty(app, event)changingValue = event.Value;I=app.EffectImage;I1=rgb2ycbcr(I);%将图片的RGB值转换成YCbCr值YY=I1(:,:,1);%YY为亮度信号Cb=I1(:,:,2);%Cb为蓝色色度分量Cr=I1(:,:,3);%Cy为红色色度分量[x y z]=size(I1);%获取图像大小tst=zeros(x,y);%建立大小为xy的零矩阵Mb=mean(mean(Cb));%返回Cb矩阵的包含每列均值的行向量的均值Mr=mean(mean(Cr));%返回Cy矩阵的包含每列均值的行向量的均值
%            计算Cb、Cr的均方差Tb=Cb-Mb;Tr=Cr-Mr;Db=sum(sum((Tb).*(Tb)))/(x*y);Dr=sum(sum((Tr).*(Tr)))/(x*y);
%            根据阀值的要求提取出near-white区域的像素点cnt=1;for i=1:xfor j=1:yb1=Cb(i,j)-(Mb+Db*sign(Mb));%sign为符号函数b2=Cr(i,j)-(Mr+Dr*sign(Mr));if (b1<abs(1.5*Db)&&b2<abs(1.5*Dr))J(cnt)=YY(i,j);tst(i,j)=YY(i,j);cnt=cnt+1;endendendcnt=cnt-1;K=sort(J,'descend');%将提取出的像素点按降序排列nn=round(cnt/(changingValue+6.05));%参考白点H(1:nn)=K(1:nn);%提取出near-white区域中的参考白点
%           提取出参考白点的RGB三信道的值mn=min(H);for i=1:xfor j=1:yif tst(i,j)<mntst(i,j)=0;elsetst(i,j)=1;endendendR=I(:,:,1);G=I(:,:,2);B=I(:,:,3);R=double(R).*tst;G=double(G).*tst;B=double(B).*tst;
%             计算参考白点的RGB的均值Rav=mean(mean(R));Gav=mean(mean(G));Bav=mean(mean(B));Ymax=double(max(max(YY)))*0.15;%计算图片亮度的最大值
%             计算出RGB三信道的增益Rgain=Ymax/Rav;Ggain=Ymax/Gav;Bgain=Ymax/Bav;
%             通过增益调整图片的RGB三信道I(:,:,1)=I(:,:,1)*Rgain;I(:,:,2)=I(:,:,2)*Ggain;I(:,:,3)=I(:,:,3)*Bgain;imshow(I,'Parent',app.UIAxes);app.ChangedImage=I;end

效果:

2 磨皮

function Slider_6ValueChangingBuffing(app, event)changingValue = event.Value;img0=app.EffectImage;tempsize = 5;%控制高斯滤波器大小的参数sigma1 = 5;%控制高斯滤波器的标准差,越大,平滑程度越好sigma2=changingValue+0.01;%控制灰度的敏感性,灰度差越大,权重越小
%             padarray用于填充高斯滤波器数组,便于卷积操作,否则图片边界易出现黑边img = double(padarray(img0,[tempsize,tempsize],0))/255;% 在每个维度都添加tempsize个0%通道提取imgr = img(:,:,1);imgg = img(:,:,2);imgb = img(:,:,3);[m,n] = size(imgr);img(:,:,1) = B_filter(imgr,tempsize,sigma1,sigma2);img(:,:,2) = B_filter(imgg,tempsize,sigma1,sigma2);img(:,:,3) = B_filter(imgb,tempsize,sigma1,sigma2);img=img(tempsize+1:m-tempsize,tempsize+1:n-tempsize,:);%只显示彩色区域,取出黑边imshow(img,'Parent',app.UIAxes)app.ChangedImage=img;function out = B_filter(Img,tempsize,sigma0,sigma1)%高斯滤波器模板定义gauss = fspecial('gaussian',2*tempsize+1,sigma0);%创建旋转对称的高斯低通滤波器[m,n] = size(Img);for i = 1+ tempsize : m - tempsizefor j = 1+ tempsize : n - tempsize%提取处理区域得到梯度敏感矩阵temp = abs(Img(i - tempsize:i + tempsize,j - tempsize:j + tempsize) - Img(i,j));temp = exp(-temp.^2/(2*sigma1^2));%得到双边滤波器并将权值和化为一filter = gauss.*temp;% 双边滤波权值filter = filter/sum(filter(:));% 权值归一化%卷积Img(i,j) = sum(sum((Img(i - tempsize:i + tempsize,j - tempsize:j + tempsize).*filter)));% 得到滤波后的图像endendout = Img;endend

效果:

五、贴图

function ImageClickedCat1(app, event)rgb=app.EffectImage;I = rgb2gray(rgb);[n1,n2] = size(I);h = ones(9)/81;I = uint8(conv2(I,h));% 均值滤波,将矩阵I、h进行卷积BW = imbinarize(I);% 将原图像二值化B = ones(21);% 结构元素,构造一个21x21的全1矩阵BW = BW-imerode(BW,B);% 用模板B对二值化图像进行腐蚀,再用二值化图像减去腐蚀图像得到图像边界BW = bwmorph(BW,'thicken');% 针对二值图像的形态学运算,通过向对象外部添加像素来加厚对象,直到先前未连通的对象实现8连通为止BW = not(bwareaopen(not(BW), 300));% 面积开运算,not为逻辑求反,bwareaopen从二值图像 BW 中删除少于300个像素的所有连通分量(对象),并生成另一个二值图像BW,填洞
%进行形态学运算B = strel('line',50,90);% 构建形态结构元素BBW = imdilate(BW,B);% 膨胀运算BW = imerode(BW,B);% 腐蚀运算B = strel('line',10,0);% 构建形态结构元素BBW = imerode(BW,B);% 腐蚀运算
%细分div = 10;r = floor(n1/div);% 分成10块行,floor将每个元素四舍五入到小于或等于该元素的最接近整数c = floor(n2/div);x1 = 1;% 对应行初始化x2 = r;s = r*c;% 块面积
%判断人脸是否处于图片四周,如果不是就全部弄黑,二值化操作for i=1:divy1 = 1;%对应列初始化y2 = c;for j=1:divloc = find(BW(x1:x2,y1:y2)==0);% 统计这一块黑色像素的位置num = length(loc);% 返回loc中最大数组维度的长度rate = num*100/s;% 统计黑色像素占比if (y2<=0.2*div*c||y2>=0.8*div*c)||(x1<=r||x2>=r*div)if rate <=100BW(x1:x2,y1:y2) = 0;end%imshow(BW)elseif rate <=25BW(x1:x2,y1:y2) = 1;end%imshow(BW)end% 下一列y1 = y1 + c;y2 = y2 + c;end% 下一行x1 = x1 + r;x2 = x2 + r;endL = bwlabel(BW,8);% 利用bwlabel函数对8连通域区间进行标号,返回与BW同样大小的标记了的矩阵BB = regionprops(L,'BoundingBox');% 得到矩形框,框柱每一个连通域,返回框的参数值BB = cell2mat(struct2cell(BB));% 先将结构体转换为元胞数组,再将元胞数组转化为普通数组[s1,s2] = size(BB);% 获取数组BB的大小BB = reshape(BB,4,s1*s2/4)';% 将数组重构为一个4xs1*s2/4的矩阵;pickshape = BB(:,3)./BB(:,4);shapeind = BB(0.3<pickshape&pickshape<3,:);% 筛选掉尺寸比例不合格[~,arealind] = max(shapeind(:,3).*shapeind(:,4));[fore_img,map,alpha]=imread('mm2.png');% 读入当前选择的贴图angle_eyes=0;
%取矩形框的中心点,确定贴图的位置pos_x=shapeind(arealind,1)+shapeind(arealind,3)/2;pos_y=shapeind(arealind,2)+shapeind(arealind,3)/2;size_ear=1.5*shapeind(arealind,3);% 将贴图放大一定倍数image = stick_picture(rgb,fore_img,pos_x,pos_y,size_ear,angle_eyes,alpha);% 调用贴图函数imshow(image,'Parent',app.UIAxes);app.ChangedImage=image;%贴图的函数function back_img =          stick_picture(back_img,fore_img,pos_x,pos_y,fore_size,angle,alpha)%调整贴图图像大小,返回图像fore_img,其行数和列数由二元素向量 [numrows numcols] 指定。scale_img = imresize(fore_img, [uint16(fore_size),uint16(fore_size)]);alpha = imresize(alpha, [uint16(fore_size),uint16(fore_size)]);
%angle为旋转度数,'crop',使输出图像 J 与输入图像 I 大小相同,裁剪旋转后的图像以适应边界框。scale_img = imrotate(scale_img, angle, 'crop');alpha = imrotate(alpha, angle, 'crop');
%获取调整大小后的贴图图像大小scale_size = size(scale_img);h = scale_size(1);w = scale_size(2);
%获取背景图片大小hh = size(back_img,1);ww = size(back_img,2);delt_h = uint16(pos_y - h/2);delt_w = uint16(pos_x - w/2);for i = 1:hfor j = 1:wif alpha(i,j)~=0 && i+delt_h<=hh && i+delt_h>0 && j+delt_w<=ww && j+delt_w>0 % 透明度检查和越界检查back_img(i+delt_h,j+delt_w,1) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,1)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,1) ) )/255;back_img(i+delt_h,j+delt_w,2) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,2)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,2) ) )/255;back_img(i+delt_h,j+delt_w,3) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,3)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,3) ) )/255;endendendendend

效果:

 

六、相框

function Image5Clicked_XK1(app, event)% 与贴图功能中的贴图函数几乎相同,稍加改动I=app.EffectImage;[fore_img,map,alpha]=imread('xk4.png');
% 获取原图的行列数,便于在函数中获取行列值,将贴图大小与图片大小统一[m,n,h]=size(I);angle=0;pos_x=0;pos_y=n/2;img = stick_picture(I,fore_img,pos_x,pos_y,m,n,angle,alpha);imshow(img,'Parent',app.UIAxes);app.ChangedImage=img;%       贴图的函数function back_img = stick_picture(back_img,fore_img,pos_x,pos_y,m,n,angle,alpha)%       调整贴图图像大小,返回图像fore_img,其行数和列数由二元素向量 [numrows numcols] 指定。scale_img = imresize(fore_img, [m,n]);alpha = imresize(alpha, [m,n]);
%       angle为旋转度数,'crop',使输出图像 J 与输入图像 I 大小相同,裁剪旋转后的图像以适应边界框。scale_img = imrotate(scale_img, angle, 'crop');alpha = imrotate(alpha, angle, 'crop');%       获取调整大小后的贴图图像大小scale_size_ = size(scale_img);h = scale_size_(1);w = scale_size_(2);%       获取背景图片大小hh = size(back_img,1);ww = size(back_img,2);delt_h = uint16(pos_y - h/2);delt_w = uint16(pos_x - w/2);for i = 1:hfor j = 1:wif alpha(i,j)~=0 && i+delt_h<=hh && i+delt_h>0 && j+delt_w<=ww && j+delt_w>0 % 透明度检查和越界检查
%                     贴图与原图按一定比例加权back_img(i+delt_h,j+delt_w,1) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,1)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,1) ) )/255;back_img(i+delt_h,j+delt_w,2) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,2)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,2) ) )/255;back_img(i+delt_h,j+delt_w,3) = (uint16(alpha(i,j)) * uint16(scale_img(i,j,3)) + uint16(255-alpha(i,j)) * uint16( back_img(i+delt_h,j+delt_w,3) ) )/255;endendendendend

效果:

MATLAB大作业——美图秀秀相关推荐

  1. 数字图像处理期末大作业-美图秀秀

    本项目是以matlab为主语言并设计GUI界面的一款简易美图秀秀,包含基础的图像处理和一些常见美颜算法 对于一些matlab较难实现的算法采用C++或python来实现 ⭐️ github地址:htt ...

  2. Matlab简易版美图秀秀(GUI界面实现)

    该项目为数字图像处理课程的期末大项目,主要内容是用matlab软件实现一些美图秀秀相关功能,比如对图像进行水平垂直翻转,旋转,裁剪,抠图等基础功能:对图像添加浮雕,艺术噪声,灰度胶片,动感模糊,素描, ...

  3. 小作品--linux下设计MATLAB GUI 实现美图秀秀的功能

    一.作品介绍 首先展示一下效果: 点击左下方的三个图片选项,可以自动给画面中的人脸添加卡通耳朵,卡通胡子等特效, 智能美肤还不知道怎么实现,只留了个控件,没有具体功能. 接下来介绍下作品的制作思路: ...

  4. 美图秀秀2014电脑版 v3.9.6.1003 官方最新版

    美图秀秀2014电脑版 v3.9.6.1003 官方最新版 软件大小:26.3MB 软件语言:简体中文 软件性质:常用软件 软件授权:官方版 更新时间:2014-05-20 应用平台:/Win8/Wi ...

  5. 期末大作业之Matlab美图秀秀【GUI界面】

    一.任务描述 该项目是基于MATLAB+Python+opencv的美图秀秀工具包,且实现了GUI可视化界面.工具包括图像处理基础功能,如选择保存撤销图片.摄像头拍照.特征点定位.退出等:基本编辑功能 ...

  6. MATLAB美图软件算法研究,【网络多媒体学】matlab实现美图秀秀基本功能.ppt

    [网络多媒体学]matlab实现美图秀秀基本功能 ;;PPT模板下载:/moban/ ;PPT模板下载:/moban/ ;PPT模板下载:/moban/ ;角度旋转; B = imrotate(A,a ...

  7. MATLAB美图秀秀系统GUI设计[完美运行,GUI界面,详细教程,万字文稿]

    课题名称 基于MATLAB的美图秀秀系统GUI设计 GUI框架链接:matlab美图秀秀[GUI,磨皮,白平衡,特效].zip_matlabGUI制作美图秀秀界面-专业指导文档类资源-CSDN下载 课 ...

  8. 【美图秀秀之大变外景照片为影楼写着】

    出门旅游当然少不了拍照,虽说相机都没闲着,可拍出好照片的几率还是不太高.好不容易拍了几张比较满意的照片,居然还有路人甲来抢镜--这样的旅行随拍实在有点拿不出手.不过,如果你肯花点心思做做简单的后期处理 ...

  9. 数字图像处理-美图秀秀:瘦脸算法

    简介 本项目是以matlab为主语言并设计GUI界面的一款简易美图秀秀,包含基础的图像处理和一些常见美颜算法 对于一些matlab较难实现的算法采用C++或python来实现 ⭐️ github地址: ...

最新文章

  1. 在线作图|2分钟在线绘制RDA图
  2. 16S+功能预测发Sciences:尸体降解过程中的微生物组
  3. symfony 2 app.php,Symfony2安装的方法(2种方法)
  4. 管理自动化:企业上云必由之路
  5. input自适应_深度残差网络+自适应参数化ReLU(调参记录18)Cifar10~94.28%
  6. Python3网络爬虫——(4)urllib.error异常处理
  7. 打破两项世界纪录,腾讯优图开源视频动作检测算法DBG
  8. [转]了解ASP.NET MVC几种ActionResult的本质:EmptyResult ContentResult
  9. 8 无法识别raid盘_王者荣耀防沉迷规则再升级;未来将采用人脸识别验证
  10. Linux grep
  11. 小技巧 - 淘宝怎么联系人工客服?
  12. 机器视觉方向的大牛介绍
  13. 机器学习之聚类算法:K均值聚类(一、算法原理)
  14. android adb 命令汇总
  15. STL — 迭代器设计思维(一)
  16. Linux服务器上对网卡上各个IP地址流量统计
  17. java中parseint函数_浅谈 js中parseInt函数的解析
  18. 折腾Transmission实现固定IP服务器BT做种教程
  19. servlet修改用户头像_修改头像总结
  20. Amber中对体系的距离角度和二面角加以限制

热门文章

  1. pgsql sql字段拼接
  2. 中国大学MOOC第五章测试题答案
  3. 不错的sed命令详解
  4. JS逆向 | 某春秋网m3u8数据解密
  5. 定点数和浮点数加减乘除运算详解【计算机组成原理】---真的建议收藏啊!!!
  6. 图像融合质量评价方法SSIM、PSNR、EN、MSE与NRMSE(一)
  7. Windows程序设计与Windows核心编程(资源)
  8. java编程思想实用整理
  9. 使用capl和uds进行.bin文件的刷写
  10. 未来的直播网站源码可实现,CycleGAN,视频换脸?