首页 文章 精选 留言 我的

精选列表

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

Converseen 0.9.9.1 发布,图片批量处理工具

Converseen 是一个用 C++ 编写的开源批量图像转换器和调整器,带有强大的 Qt5 库,它支持 100 多种图像格式。借助 Converseen,用户可以执行单张或多张图片的格式转换,调整一张或多张图像的大小,或者为网页压缩图像。 Converseen 0.9.9.1 正式发布,更新内容如下: 添加了 JFIF 支持; 修复了删除所有图片时引起的崩溃问题; 修复了设置数据位置; 翻译更新; 次要更新; 其他错误修正; 更多详情可查看:https://github.com/Faster3ck/Converseen/releases/tag/v0.9.9.1

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

开源项目应如何处理版权声明?

原文:How should open source projects handle copyright notices 作者:Scott K Peterson,翻译:御坂弟弟 简单使用即可,将关注点放在其它地方。 源代码中的版权声明前后不一致且维护不善,其结果将导致使用者难以理解。那么,是否应将更多资源用于维护版权声明?并非如此。 版权声明是单行字符串,通常包括单词 “Copyright”(或某些替代词,如©)、名称(通常是个人或公司)和年份。 在本文中,我不关注许可证或许可证声明(有时可能包括版权声明)。我关于版权声明维护投资处于低优先级的建议不适用于许可证信息。许可证信息应清晰呈现并保持准确。如果您邀请他人使用您的软件并对其进行操作,请通过提供并维护清晰的许可证信息来明确授予的权限。 回到版权声明:它们的法律意义是什么?如果您认为版权声明符合法律要求或至少提供了重要的法律优势,请三思。此类声明在开源软件中的法律意义是如此之小,以至于人们可以轻易地找到超过法律意义的实际考虑。 尽管这些声明可能看起来很重要,但它们在当今的源代码中的存在很大程度上是过去版权法的​​残余。有一段时间,如果未在已出版的材料中包含版权声明,可能会导致完全丧失美国版权法提供的权利;当美国最终加入许多其他国家已经加入的"伯尔尼公约"时,情况发生了变化(美国于1988年11月16日加入该条约,并于 1989 年 3 月 1 日在美国生效)。 如果开源软件中的这些声明有实际作用,则一个项目可以采用公约而不是由于美国对“版权声明”的法定要求去维护版权声明,从而以更少的成本去维护,并且仍然获得一些实用价值。 由于美国版权法一直是推动版权声明使用的重要因素,因此我将在此进行更深入的探讨。美国版权局发布了称为通函的指导文件。3 号通函中有关版权声明的内容包括: “在 1989 年 3 月 1 日之前首次出版的所有作品都必须进行版权声明,但下面讨论的某些例外情况。如果省略了该声明或在使用版权声明时出现了错误,则该作品在美国通常失去版权保护。 对于 1989 年 3 月 1 日或之后出版的作品,未出版的作品以及外国作品,版权声明是可选的;但是,将声明包含在您的作品中在法律上有利。” 总而言之,在美国,版权声明在1988 年就非常重要。但是,当美国加入许多其他国家存在的《伯尔尼公约》时,美国法律对版权声明的关键作用被消除了。公约规定:“享有和行使这些权利不需任何手续……” 麻省理工学院(The X Window System)和加州大学伯克利分校(Berkeley Software Distribution)的软件项目促进形成了早期的许可证文本,每个许可证文本都起源于严格的 “notice-or-lose-it” 要求仍然有效的时期( 或至少对那些为这些许可证文本做出贡献的人来说,“notice-or-lose-it”仍记忆犹新)。其结果是这些许可证文本都具有关于复制版权声明的明确内容。 随着基于这些文本的许可证的广泛使用,大多数开源软件开发人员已经看到版权声明似乎在许可证中显得很重要。但是这些文本是在考虑较早的法律制度的情况下创建的。现在,距《伯尔尼公约》(大多数其他国家已经接受)的无手续规定首次适用于美国的时间已经过去30年了。要了解《伯尔尼公约》的采纳程度,请参阅管理《伯尔尼公约》的世界知识产权组织维护的缔约方清单。 您可能想知道上面引用中提到的那些“法律优势”,答案在 3 号通函的末尾。 尽管对于未出版的作品、外国作品以及于 1989 年 3 月 1 日或之后出版的作品,声明是可选的,但使用版权声明具有以下优势: 声明使潜在用户意识到作品拥有版权。 对于已发表的作品,声明可能会阻止版权侵权诉讼中的被告试图限制其基于无辜侵权抗辩的损害赔偿或禁令救济的责任。 声明标识了在首次发布作品时版权所有者的权利,供寻求使用该作品许可的各方使用。 声明标识首次出版的年份,对于匿名作品、假名作品或出租作品而言,可用于确定版权保护期限。 声明可能会通过标识版权所有者并指定版权期限来防止其成为孤立作品。 以上就是版权声明的优势。 我引用了美国版权局第 3 号通函,因为与基本法规相比,它对要求的措辞更具可读性。美国联邦一级的成文法已被编入所谓的《美国法典》,该法典由一系列“标题”组成。标题 17 是版权。版权声明的详细信息位于该标题的第 401-406 部分。一个可以从 17 USC 401开始。有关法规要求在版权声明中包含的三个要素的说明,请参见 17 USC 401(b)。如果要查看“遗漏对无辜侵权者的影响”的详细信息,请参见 17 USC 405(b)。 为了提供更准确的信息,为什么不清理代码库中的版权声明?令人尴尬的是,17 USC 506(c)(欺诈性版权声明)、17 USC 506(d)(欺诈性删除版权声明)和 17 USC 1202(a)(虚假版权管理信息)提供了一些不利因素(即使仅限于不良意图)。由于价值较低且存在一定风险(如果在进行更改时出错),因此无怪乎没有将更多资源用于维护版权声明。 有些人和公司强调将详细的声明放入根据开源许可证提供的代码中,有些没有。随着开源项目的发展,某些贡献可能包含声明,而其他贡献则没有。即使文件的内容与原始版本相比发生了很大的变化,文件也可以包含原始声明,而不包含其他声明。或者以后的贡献者可以向以前没有声明的文件中添加一个声明。那么,版权声明的要素是“该作品的首次出版年份”吗?这又意味着什么?见仁见智。那么更新呢?比如当其他贡献产生的时候呢? 至于通过挖掘版权声明数据得出结论,要谨慎,并且不要有过高期望。 开源项目应该做什么? 请提供并维护清晰,准确的许可证信息。 对于版权声明,很难证明为维护版权声明详细信息而进行的投资是合理的。但是有些人可能希望有声明。至于“软件的起源”,也许仅仅用于项目而不是尝试捕获更细粒度的内容会更有用和更准确。至于出版年份?手动维护源文件太麻烦所以不大值得,源管理工具以更低的资源成本提供了更准确的信息。 有版权声明的更多详细信息,我推荐您阅读:开源软件项目中的版权声明,作者:史蒂夫·温斯洛(Steve Winslow),写于 2020年 1 月 10 日。

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

图像处理基础:颜色空间及其OpenCV实现

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶” 作者:Soumyadip Sarkar 编译:ronghuaiyang 导读 对图像的颜色空间做了一个概念性的介绍,并通过代码的方式可视化了每种颜色空间的每个通道所表示的意义。 文章内容包括: 什么是颜色空间? 颜色空间有哪些类别? 如何在OpenCV中实现? 什么是颜色空间? 颜色是一种连续的现象,它意味着有无数种颜色。但是,人类的眼睛和感知能力是有限的。所以,为了识别这些颜色,我们需要一种媒介或这些颜色的表示,这种颜色的表示被称为色彩空间。在技术术语中,一个颜色模型或颜色空间是一个特定的3-D坐标系统以及该系统中的一个子空间,其中每一种颜色都由一个单点表示。 有哪些颜色空间的类型? 目前主要有五种类型的颜色模型。但是,我将只写一些常见的(RGB、HSV和HSL)。 RGB(Red Green Blue) HSL(Hue Saturation Lightness) HSV(Hue Saturation Value) YUV(Luminance, blue–luminance, red–luminance) CMYK(Cyan, Magenta, Yellow, Key) RGB颜色空间: RGB颜色空间是三维坐标系中红、绿、蓝坐标所表示的著名颜色空间之一。在更专业的术语中,RGB将颜色描述为由三个部分组成的元组。每个部分都可以取0到255之间的值,其中元组(0,0,0)表示黑色,元组(255,255,255)表示白色。元组的第0、第1和第2个部分分别表示红、绿、蓝的分量。 RGB颜色空间的Python实现: 这里我们导入了必要的库,cv2用于颜色空间转换,NumPy用于数组操作,Matplotlib用于显示图像,os用于访问图像目录,tqdm用于显示加载栏。 hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####hsl_img_1=hsl_img.copy()hsl_img_2=hsl_img.copy()hsl_img_3=hsl_img.copy()hsl_img_1[:,:,1]=0####HUE-->ZERO####hsl_img_1[:,:,2]=0hsl_img_2[:,:,0]=0####SATURATION-->ZERO####hsl_img_2[:,:,2]=0hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####hsl_img_3[:,:,1]=0 设置两个空列表Z和X,分别用于存储带有各自图像的标签,然后指定图像大小和路径目录。在这之后,我定义了两个函数,用于返回flower类型(assign_lable)和访问每个图像、读取和调整其大小(make_train_data)。 Z,X=[],[]IMG_SIZE=150FLOWER_SUNFLOWER_DIR='../input/flowers-recognition/flowers/flowers/sunflower'defassign_label(img,flower_type):returnflower_typedefmake_train_data(flower_type,DIR):forimgintqdm(os.listdir(DIR)):label=assign_label(img,flower_type)path=os.path.join(DIR,img)img=cv2.imread(path,cv2.IMREAD_COLOR)img=cv2.resize(img,(IMG_SIZE,IMG_SIZE))#Resizingtheimage 加载图像,然后在OpenCV以BGR格式读取图像时将BGR颜色空间转换为RGB颜色空间,但Maplotlib使用RGB格式来显示图像。这就是为什么我们需要转换颜色空间后,读取图像为RGB。 然后对固定图像进行三份拷贝,并将每份拷贝的任何双色通道设为零,分别用于访问红、绿、蓝通道。如果你让第0个颜色通道都是0那么你只会得到蓝色通道。 make_train_data('Sunflower',FLOWER_SUNFLOWER_DIR)#####LoadingSunflowerDatafix_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2RGB)###########CONVERTINGBGRCOLORSPACEINTORGBCOLORSPACE#########new_img_1=fix_img.copy()new_img_2=fix_img.copy()new_img_3=fix_img.copy()new_img_1[:,:,0]=0#makingRchannelzero####ForBLUEchannel#####new_img_1[:,:,1]=0#makingGchannelzeronew_img_2[:,:,1]=0####ForREDcolorChannel####new_img_2[:,:,2]=0new_img_3[:,:,0]=0###ForGREENChannel####new_img_3[:,:,2]=0 显示图像: f,axes=plt.subplots(1,3,figsize=(15,15))list=[new_img_1,new_img_2,new_img_3]i=0foraxinaxes:ax.imshow(list[i])i+=1 HSL颜色空间: HSL的一般含义是色调、饱和度和明度。你可以将HSL以圆柱体的形式可视化,如图2(a)所示。围绕圆柱体的是不同的颜色,比如绿色、黄色、红色等等(我们真正想要的颜色)。饱和度是指颜色的多少,而明度是指颜色有多暗或多亮。正如你所看到的,圆柱体的顶部全是白色,底部全是黑色。 图2:HSL颜色空间 HSL颜色空间的Python实现: 使用OpenCV函数**cvtColor()**将BGR颜色空间转换为HSL颜色空间,在这里我们需要传递图像,以及从哪个颜色空间到哪个颜色空间我们想要改变图像。然后再复制并使两个颜色通道为零,以便分别显示每个颜色通道。 hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####hsl_img_1=hsl_img.copy()hsl_img_2=hsl_img.copy()hsl_img_3=hsl_img.copy()hsl_img_1[:,:,1]=0####HUE-->ZERO####hsl_img_1[:,:,2]=0hsl_img_2[:,:,0]=0####SATURATION-->ZERO####hsl_img_2[:,:,2]=0hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####hsl_img_3[:,:,1]=0 现在显示三个不同的颜色通道→ f,axes=plt.subplots(1,3,figsize=(15,15))list=[hsl_img_1,hsl_img_2,hsl_img_3]i=0foraxinaxes:ax.imshow(list[i])i+=1 HSV颜色空间: HSV这个名字来自于颜色模型的三个坐标,即色相、饱和度和值。它也是一个圆柱形的颜色模型,圆柱体的半径表示饱和度,垂直轴表示值,角度表示色调。对于观察者,色调是占主导地位的,饱和度是混合到色调中的白光的数量,value是chrome的强度,value较低颜色变得更加类似于黑色,value越高,颜色变得更加像颜色本身。通过改变这些参数,我们可以生成不同的颜色。 图3:HSV颜色空间 HSV颜色空间的Python实现: 使用cvtColor()函数将色彩空间转换为HSV色彩空间。然后再复制并使两个通道置为零,以便分别显示每个通道。 hsv_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HSV)hsv_img_1=hsv_img.copy()hsv_img_2=hsv_img.copy()hsv_img_3=hsv_img.copy()hsv_img_1[:,:,1]=0#HUE-->ZEROhsv_img_1[:,:,2]=0hsv_img_2[:,:,0]=0#SATURATION-->ZEROhsv_img_2[:,:,2]=0hsv_img_3[:,:,0]=0#VALUE-->ZEROhsv_img_3[:,:,1]=0 单独显示每个颜色通道: —END— 英文原文:https://medium.com/analytics-vidhya/image-processing-series-part1-colorspaces-836d2e3ca700 请长按或扫描二维码关注本公众号 喜欢的话,请给我个在看吧! 本文分享自微信公众号 - AI公园(AI_Paradise)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册