首页 文章 精选 留言 我的

精选列表

搜索[c ],共10000篇文章
优秀的个人博客,低调大师

CollectiveOAuth —— C# 第三方授权框架

.Net平台下 CollectiveOAuth,它仅仅是一个 第三方授权登录的工具类库,它可以让我们脱离繁琐的第三方登录SDK,让登录变得So easy! 特点 废话不多说,就俩字: 全:已集成十多家第三方平台(国内外常用的基本都已包含),仍然还在持续扩展中([开发计划(制作中)]! 简:API就是奔着最简单去设计的(见后面快速开始),尽量让您用起来没有障碍感! 快速开始 引入依赖 配置授权信息(默认配置在webconfig中, 可以改造存储数据库或者其它任意地方) 1 <!--Demo: 微信服务号授权配置--> 2 <add key="CollectiveOAuth_WECHAT_MP_ClientId" value="wxer6785660834656" /> 3 <add key="CollectiveOAuth_WECHAT_MP_ClientSecret" value="98967867678678678546434345344" /> 4 <add key="CollectiveOAuth_WECHAT_MP_Scope" value="snsapi_userinfo" /> 5 <add key="CollectiveOAuth_WECHAT_MP_RedirectUri" value="https://yours.domain.com/oauth2/callback?authSource=WECHAT_MP" /> 调用api // 创建授权request 1 var clientConfig = new ClientConfig(); 2 clientConfig.clientId = AppSettingUtils.GetStrValue($"CollectiveOAuth_XXXXXX_ClientId"); 3 clientConfig.clientSecret = AppSettingUtils.GetStrValue($"CollectiveOAuth_XXXXXX_ClientSecret"); 4 clientConfig.redirectUri = AppSettingUtils.GetStrValue($"CollectiveOAuth_XXXXXX_RedirectUri"); 5 clientConfig.scope = AppSettingUtils.GetStrValue($"CollectiveOAuth_XXXXXX_Scope"); 6 7 AuthRequest authRequest = new GiteeAuthRequest(clientConfig); 8 // 生成授权页面 9 authRequest.authorize("state"); 10 // 授权登录后会返回code(auth_code(仅限支付宝))、state,可以用AuthCallback类作为回调接口的参数 11 // 注:CollectiveOAuth默认保存state的时效为5分钟,5分钟内未使用则会自动清除过期的state 12 authRequest.login(callback); API列表 平台 API类 SDK GiteeAuthSource 参考文档 GithubAuthRequest 参考文档 WeiboAuthRequest 参考文档 DingTalkScanAuthRequest 参考文档 BaiduAuthRequest 参考文档 CodingAuthRequest 参考文档 OschinaAuthRequest 参考文档 AlipayMPAuthRequest 参考文档 QQAuthRequest 参考文档 WeChatOpenAuthRequest 参考文档 WeChatMPAuthRequest 参考文档 WeChatEnterpriseAuthRequest 参考文档 WeChatEnterpriseScanAuthRequest 参考文档 [TaobaoAuthRequest] 参考文档 GoogleAuthRequest 参考文档 FacebookAuthRequest 参考文档 DouYinAuthRequest 参考文档 LinkedInAuthRequest 参考文档 MicrosoftAuthRequest 参考文档 XiaoMiAuthRequest 参考文档 ToutiaoAuthRequest 参考文档 TeambitionAuthRequest 参考文档 RenrenAuthRequest 参考文档 PinterestAuthRequest 参考文档 StackOverflowAuthRequest 参考文档 HuaweiAuthRequest 参考文档 KujialeAuthRequest 参考文档 GitlabAuthRequest 参考文档 MeituanAuthRequest 参考文档 ElemeAuthRequest 参考文档 [TwitterAuthRequest] 参考文档 _请知悉:经咨询CSDN官方客服得知,CSDN的授权开放平台已经下线。如果以前申请过的应用,可以继续使用,但是不再支持申请新的应用。

优秀的个人博客,低调大师

【手撕算法】C++实现超像素分割算法

点击上方"蓝色小字"关注我呀 写完这篇,图像分割的传统方法就快全了,传统图像分割大体有基于阈值的,这类就没啥算法可以写,所以直接略过了;然后就是K-means这种聚类/分裂的,从几个点开始进行聚类分割,或者一张图不断分裂达到分割目的; 【手撕算法】K-means算法实现主题色提取 再有就是区域生长这类的; 【手撕算法】基于队列实现的区域增长分割算法 以及分水岭算法,分水岭算法代码写好有一段时间了,但实在不知道文章咋写...就再放放吧;最后就是超像素分割了,超像素分割有k-means算法的影子,所以可以先看看k-means算法的代码实现过程。 算法原理 初始化种子点(聚类中心):按照设定的超像素个数,在图像内均匀的分配种子点。假设图片总共有 N 个像素点,预分割为 K 个相同尺寸的超像素,那么每个超像素的大小为N/ K ,则相邻种子点的距离(步长)近似为S=sqrt(N/K)。 在种子点的n*n邻域内重新选择种子点(一般取n=3)。具体方法为:计算该邻域内所有像素点的梯度值,将种子点移到该邻域内梯度最小的地方。这样做的目的是为了避免种子点落在梯度较大的轮廓边界上,以免影响后续聚类效果。 在每个种子点周围的邻域内为每个像素点分配类标签(即属于哪个聚类中心)。和标准的k-means在整张图中搜索不同,SLIC的搜索范围限制为2S2S,可以加速算法收敛,如下图。在此注意一点:期望的超像素尺寸为SS,但是搜索的范围是2S*2S。 距离度量。包括颜色距离和空间距离。对于每个搜索到的像素点,分别计算它和该种子点的距离。距离计算方法如下:其中,dc代表颜色距离,ds代表空间距离,Ns是类内最大空间距离,定义为Ns=S=sqrt(N/K),适用于每个聚类。最大的颜色距离Nc既随图片不同而不同,也随聚类不同而不同,所以我们取一个固定常数m(取值范围[1,40],一般取10)代替。最终的距离度量D’如下:由于每个像素点都会被多个种子点搜索到,所以每个像素点都会有一个与周围种子点的距离,取最小值对应的种子点作为该像素点的聚类中心。 迭代优化。理论上上述步骤不断迭代直到误差收敛(可以理解为每个像素点聚类中心不再发生变化为止),实践发现10次迭代对绝大部分图片都可以得到较理想效果,所以一般迭代次数取10。 增强连通性。经过上述迭代优化可能出现以下瑕疵:出现多连通情况、超像素尺寸过小,单个超像素被切割成多个不连续超像素等,这些情况可以通过增强连通性解决。主要思路是:新建一张标记表,表内元素均为-1,按照“Z”型走向(从左到右,从上到下顺序)将不连续的超像素、尺寸过小超像素重新分配给邻近的超像素,遍历过的像素点分配给相应的标签,直到所有点遍历完毕为止。 伪算法描述 程序介绍 程序声明了一个SLIC算法类,类的具体程序太长了,就不贴了,大家可以去qq群下载程序自己看,都注释好了。 就看一下主程序吧: int main(){【1】读取原图并显示 Mat image = imread("千矢.png",33); if (image.empty()) { printf_s("图片读取失败"); return -1; } imshow("原图", image);【2】转换为LAB颜色空间方便计算距离 Mat lab_image = image.clone(); cvtColor(image, lab_image, COLOR_BGR2Lab); //定义超像素数以及权重 int w = image.cols, h = image.rows; int nr_superpixels = 300;//超像素数intnc=40;//权重mdoublestep=sqrt((w*h)/(double)nr_superpixels);【3】执行SLIC超像素算法 SLIC slic; slic.generate_superpixels(&lab_image, step, nc); slic.create_connectivity(&lab_image);【4】显示分割轮廓和分割结果图 //该三个函数可以分别注释单独显示查看 slic.colour_with_cluster_means(&image);//颜色均值填充 slic.display_contours(&image, Scalar(0, 0, 255));//显示轮廓 //slic.display_center_grid(&image, Scalar(255, 0, 0));//显示中心点 imshow("result", image);waitKey(0);} 一共是四个步骤。其中步骤【2】中需要自己定义两个变量nr_superpixels和nc。 nr_superpixels为超像素个数,你可以根据图像大小自己定义,如果图像x方向10个超像素块,y方向30个超像素块,那就是300。 权重变量nc,即上文【算法原理】第4步中的固定常数m,一般取1-40范围内的整数。 效果展示 THE END 本文原创内容有限,就是整合了一下自己看的超像素分割的博客,两篇不错的链接放这儿了: https://blog.csdn.net/zhj_matlab/article/details/52986700https://blog.csdn.net/qq_26129959/article/details/90760028 代码放qq群了,今天就到这里啦。 本文分享自微信公众号 - Opencv视觉实践(gh_31e12b1be0e0)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册