- Halcon学习之select_shape()算子参数介绍
一、算子介绍select_shape()是HALCON中用于基于形状特征筛选区域的关键算子,广泛应用于图像分割、目标检测和工业质检等领域。它允许用户根据指定的几何特征从输入区域集合中选择符合条件的区域。至于为什么单独介绍这个算子呢,因为他筛选特征的方式有太多种了,如果可以熟练的掌握这些特征,那在后面的例程学习以及实际应用中,可谓是得心应手了。二、算子参数select_shape(Regions:S
- halcon算子翻译——gray_histo和gray_histo_abs
机器人自动化控制
HALCON
算子:gray_histo(Regions,Image:::AbsoluteHisto,RelativeHisto)功能:计算灰度值分布。算子gray_histo为区域内的图像计算灰度值的绝对和相对的直方图。两个直方图都是256个值的元组,它们从0开始,包含图像的各个灰度值的频率。输入参数:Regions:输入计算的区域;Image:输入图像(byte/cyclic/direction/intl/
- Keil中 L6406E: No space in execution regions with .ANY selector matching heap_4.o(.bss) 错误分析简述
lixzest
stm32C
链接器错误L6406E:Nospaceinexecutionregionswith.ANYselectormatchingheap_4.o(.bss)表明内存分配已超出预期范围,通常与全局/静态变量(.bss段)或堆(Heap)配置有关。以下是逐步解决方案:1.理解错误原因.bss段:存储未初始化的全局变量和静态变量。heap_4.o:通常与FreeRTOS的堆管理(Heap4)相关,Heap4需
- JVM(三)垃圾回收器G1
呼呼通
javaJVM
G1的FullGC是一个单线程,它可能引起一个长时间的停顿时间,G1的设计目标是减少FullGC,满足应用性能目标。G1的长期目标是取代CMS(ConcurrentMark-SweepCollector,并发标记-清除).因为特性的不同使G1成为比CMS更好的解决方案.一个区别是,G1是一款压缩型的收集器.G1通过有效的压缩完全避免了对细微空闲内存空间的分配,不用依赖于regions,这不仅大大简
- hbase快照同步到目标集群出现ERROR Multiple regions have the same startkey问题分析
spring208208
hbasehbasepython前端
问题现象源集群表split/merge过程中创建快照,该快照同步到目标集群,目标集群恢复快照后,进行hbck检查,就会出现异常报错:ERRORMultipleregionshavethesamestartkey;问题分析首先,出现上述问题可能有如下两种原因:源集群中snapshot表本身就存在这种问题,没有修复就执行snapshot,导出快照到目标集群,然后恢复表也会存在这种问题。在执行split
- HBase的原理
会探索的小学生
大数据HBase
一、什么是HBaseHBase是一个分布式,版本化,面向列的数据库,依赖Hadoop和Zookeeper(1)HBase的优点提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统(2)HBase表的特性Region包含多行列族包含多个列RegionServer管理一定数量的Region如果一个RegionServer宕机了,Master节点会重新将其负责的Region分配给其他RegionS
- Halcon根据特征值选择区域
看海听风心情棒
计算机视觉人工智能图像处理目标跟踪
Halcon根据特征值选择区域关于提取图像的特征,比较常用的一个算子是select_shape算子,它能高效地根据特征提取出符合条件的区域。该算子的原型如下:select_shape(Regions:SelectedRegions:Features,Operation,Min,Max:)参数1和参数2分别表示输入和输出的区域,值得关注的是参数3Features。这里提供了一个包括多种特征参数的列表
- 《UE5_C++多人TPS完整教程》学习笔记11 ——《P12 Steam 地区(Steam Regions)》
SHOTJEE
#ue5c++游戏
本文为B站系列教学视频《UE5_C++多人TPS完整教程》——P12Steam地区(SteamRegions)》的学习笔记,该系列教学视频为Udemy课程《UnrealEngine5C++MultiplayerShooter》的中文字幕翻译版,UP主(也是译者)为游戏引擎能吃么。文章目录P12Steam地区12.1设置Steam地区12.2SummaryP12Steam地区本节课快速浏览Steam
- LeetCode 130. 被围绕的区域
phantom34
题目链接https://leetcode-cn.com/problems/surrounded-regions/题目描述给定一个二维的矩阵,包含'X'和'O'(字母O)。找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例:XXXXXOOXXXOXXOXX运行你的函数后,矩阵变为:XXXXXXXXXXXXXOXX题解题目意思就是只要被X所包围的地方将被吃掉,就像下围棋一样,而在
- 002—pandas 多层汇总的正确打开方式
熊猫烧竹
pandas实战案例大全pandas
前言还在为老板的需求而烦恼吗?本篇内容教你怎样多级分层汇总。代码展示:二、使用步骤1.引入库代码如下(示例):importpandasaspdfromfakerimportFakerimportrandom2.读入数据代码如下(示例):fake=Faker()#假设的销售地区列表regions=['华北','华东','华南','华中','西北','西南','东北']#商品示例列表products=
- select_obj
小张小迪
笔记开发语言
count_obj(Regions,&Num);for(i=1;i<=Num;i++){select_obj(Regions,&Single,i);T_get_region_polygon(Single,5.0,&Row,&Column);T_disp_polygon(WindowHandleTuple,Row,Column);destroy_tuple(Row);destroy_tuple(Co
- select_obj
小张小迪
笔记开发语言
read_image(Image,Files[Index])*binary_threshold(Image,Region,'max_separability','light',UsedThreshold)threshold(Image,Regions,37,139)connection(Regions,ConnectedRegions)select_shape(ConnectedRegions,S
- Counting regions(图论+数论)
H_xiaobo
图论
原题链接:G-Countingregions_2022牛客五一集训派对day1(nowcoder.com)题目描述Niuniulikesmathematics.Healsolikesdrawingpictures.Oneday,hewastryingtodrawaregularpolygonwithnvertices.Heconnectedeverypairoftheverticesbyastra
- Halcon学习笔记——Region特征类算子(1)
一楼二栋
算法机器学习
Region特征类算子region_features(Regions::Features:Value)*计算区域的形状特征*输入参数:*Regions————待检测区域*Features————要检测的特征(默认值:'area',可选值见Region特征图所示)*输出参数:*Value————计算的特征*Features可以输入单个或者多个特征,例如['area','anisometry']sel
- 130. 被围绕的区域
Mastergad
题目(https://leetcode.com/problems/surrounded-regions/)给定一个二维的矩阵,包含'X'和'O'(字母O)。找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例:XXXXXOOXXXOXXOXX运行你的函数后,矩阵变为:XXXXXXXXXXXXXOXX解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为'
- 【2019-07-10】Hbase性能调优
学师大术
1.修改regionserver参数的参数:hbase.regionserver.hfile.durable.syncfalsehbase.regionserver.wal.durable.syncfalsehbase.regionserver.handler.count600hbase.regionserver.metahandler.count3002.内存参数GC_OPTS,将regions
- Halcon计算一个区域的最大内接圆 inner_circle
electrical1024
计算机视觉图像处理人工智能算法目标跟踪
Halcon计算一个区域的最大内接圆该算子用于计算一个区域的最大内接圆,其原型如下:inner_circle(Regions:::Row,Column,Radius)参数1:Regions表示输入的区域。参数2和3:Row、Column为输出参数,表示最大内接圆的圆心坐标。参数4:Radius为输出参数,表示最大内接圆的半径。以几个简单图形为例,求各自的最大内接圆。这里使用inner_circle
- Halcon计算最小外接矩形Smallest_rectangle2
electrical1024
计算机视觉图像处理人工智能算法目标跟踪
Halcon计算最小外接矩形Smallest_rectangle2该算子用于求最小外接矩形。该算子的原型如下:smallest_rectangle2(Regions:::Row,Column,Phi,Lengthl,Length2)其各参数的含义如下。参数1:Regions表示输入的区域。参数2和3:Row、Column为输出参数,表示最小外接矩形的几何中心坐标。参数4:Phi为输出参数,表示最小
- Halcon根据特征值选择区域select_shape
electrical1024
人工智能计算机视觉算法
Halcon根据特征值选择区域关于提取图像的特征,比较常用的一个算子是select_shape算子,它能高效地根据特征提取出符合条件的区域。该算子的原型如下:select_shape(Regions:SelectedRegions:Features,Operation,Min,Max:)参数1和参数2分别表示输入和输出的区域,值得关注的是参数3Features。这里提供了一个包括多种特征参数的列表
- keil编译报错:No space in execution regions with .ANY selector matching
爱睡的梨
keilMCUmcu
Nospaceinexecutionregionswith.ANYselectormatching出现该错误是因为内存溢出,没有更多的空间,可以从以下几点进行排查。1、优化编译器的编译规则,配置成Level3最高级,但是会增加编译时间Keil编译器提供了多种优化选项,以帮助程序员在编译代码时提高代码效率和性能。一些常见的优化选项包括:优化级别:Keil编译器提供了不同的优化级别,通常分为无优化、低
- Field Regions 关于近场和阵列面积等效孔径
快把我骂醒
NearField笔记
这里写自定义目录标题2.2.4FieldRegions(Page33)2.15.2AntennaEquivalentAreas本文内容来自天线圣经2.2.4FieldRegions(Page33)DDDisthelargestdimensionoftheantenna.DDD是天线阵最大的物理尺寸。可以直观地理解为天线阵的最大物理尺寸越大,从天线阵的相隔最远的两个阵元发出的电磁波的差别越大,从而接
- 130. Surrounded Regions 417. Pacific Atlantic Water Flow
Fai_B
leetcode
130.SurroundedRegionsGivenanmxnmatrixboardcontaining'X'and'O',captureallregionsthatare4-directionallysurroundedby'X'.Aregioniscapturedbyflippingall'O'sinto'X'sinthatsurroundedregion.Markallthe'O'islan
- python关于矩阵重复赋值会覆盖的问题
古德蜡克
importitertoolsimportnumpyasnpcomb=list(itertools.combinations(list(range(regions)),2))bands_info=[]coeff=np.zeros([bands,len(comb)])forclainrange(classes):class_info=data[:,cla*bands*regions:(cla+1)*
- Halcon学习之五:有关图像的定义域的函数
xinrui_hhuc
Halcon学习imagedomain
1、add_channels(Regions,Image:GrayRegions::)将Image图像的灰度值赋给区域Regions,得到GrayRegions。2、change_domain(Image,NewDomain:ImageNew::)
- LeetCode130. Surrounded Regions
叶卡捷琳堡
深度优先算法数据结构leetcodec++
文章目录一、题目二、题解一、题目Givenanmxnmatrixboardcontaining‘X’and‘O’,captureallregionsthatare4-directionallysurroundedby‘X’.Aregioniscapturedbyflippingall'O’sinto'X’sinthatsurroundedregion.Example1:Input:board=[[
- LeetCode. 130. 被围绕的区域
风卷晨沙
1、题目https://leetcode-cn.com/problems/surrounded-regions/2、题解这是我学习到的一个思路,大概逻辑是只要把不和边界O连通的O换位X就可以了。所以我们只需要遍历一下四条边,将于边界O相连的O做上标记,最后遍历char[][]数组,来改变一下字母和符号就可以了。在找到边界O时,需要向它的四周去找和它相通的O,这里就用到了队列,被连通的O的坐标首先入
- Prism 的 IOC、Model功能展示
长安思
wpf
usingMicrosoft.Extensions.Logging;usingNLog.Config;usingPrism.Ioc;usingPrism.Modularity;usingPrism.Regions;usingSystem;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usin
- ng计算地址长度
简小咖
需求:输入地址时候,会实时计算数组长度image.png超出长度提示超出了多少image.png方法calLength(address){ÏletallLen=address.line1.length;//获取双向绑定的小区详细地址长度if(address.region.isocode&&this.regions){//双向绑定的省,根据省的code号获取中文名字,再计算长度for(letregi
- halcon改变特征直方图数据图像没有变化
造砖黑马探花程序员
halcon计算机视觉人工智能
1、首先要有图像根据联通进行分开dev_clear_window()read_image(Image,'D:/desktop/tmpp/微信图片_20231201184731.png')*转为灰度图rgb1_to_gray(Image,GrayImage)*二值化threshold(GrayImage,Regions,96,255)*分块connection(Regions,ConnectedRe
- Halcon region区域提取及区域转图像
&Mr.Gong
Halcon视觉库Halcon区域提取区域转图像
在VS中调用Halcon中的分割之类函数后,直接返回显示时会报错,因为是把返回值当成L了Image变量直接赋值给了图像数据buffer,返回的是被分割后的Regions,因此从Regions中获取get_image_pointer1或get_image_pointer3时就会报错,提示函数没有灰度值。因此需要将Regions连接起来生成一个大的区域,然后将区域进行相关操作转化成Image,Halc
- 如何用ruby来写hadoop的mapreduce并生成jar包
wudixiaotie
mapreduce
ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢:
1.安装rvm:
不说了 网上有
2.安装ruby:
由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。
3.安装jruby:
rvm install jruby然后等待安
- java编程思想 -- 访问控制权限
百合不是茶
java访问控制权限单例模式
访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问
一:包访问权限;
自定义包:
package com.wj.control;
//包
public class Demo {
//定义一个无参的方法
public void DemoPackage(){
System.out.println("调用
- [生物与医学]请审慎食用小龙虾
comsci
生物
现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡.....
所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质
- org.apache.jasper.JasperException: Unable to compile class for JSP:
商人shang
maven2.2jdk1.8
环境: jdk1.8 maven tomcat7-maven-plugin 2.0
原因: tomcat7-maven-plugin 2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin 2.2就行,即
<plugin>
- 你的垃圾你处理掉了吗?GC
oloz
GC
前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别
- shiro 和 SESSSION
杨白白
shiro
shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此
- 移动互联网终端 淘宝客如何实现盈利
小桔子
移動客戶端淘客淘寶App
2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛
- wordpress小工具制作
aichenglong
wordpress小工具
wordpress 使用侧边栏的小工具,很方便调整页面结构
小工具的制作过程
1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php)
小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变
<?php
class AWP_Post_Category extends WP_Wi
- JS微信分享
AILIKES
js
// 所有功能必须包含在 WeixinApi.ready 中进行
WeixinApi.ready(function(Api) {
// 微信分享的数据
var wxData = {
&nb
- 封装探讨
百合不是茶
JAVA面向对象 封装
//封装 属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性
在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用
例如 1:
//属性 将其设为私有
姓名 name 可以公开
- jquery radio/checkbox change事件不能触发的问题
bijian1013
JavaScriptjquery
我想让radio来控制当前我选择的是机动车还是特种车,如下所示:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><
- AngularJS中安全性措施
bijian1013
JavaScriptAngularJS安全性XSRFJSON漏洞
在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。
一.JSON漏洞
当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,
- [Maven学习笔记九]Maven发布web项目
bit1129
maven
基于Maven的web项目的标准项目结构
user-project
user-core
user-service
user-web
src
- 【Hive七】Hive用户自定义聚合函数(UDAF)
bit1129
hive
用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。
问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?
Double evaluate(Double a, Double b)
- 通过 nginx-lua 给 Nginx 增加 OAuth 支持
ronin47
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证:
&n
- 利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法
bsr1983
session
在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。 在 tomcat-redis-session-manager的github上有如下说明: Session Change Tracking
As noted in the &qu
- 《代码大全》表驱动法-Table Driven Approach-1
bylijinnan
java算法
关于Table Driven Approach的一篇非常好的文章:
http://www.codeproject.com/Articles/42732/Table-driven-Approach
package com.ljn.base;
import java.util.Random;
public class TableDriven {
public
- Sybase封锁原理
chicony
Sybase
昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。 无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的
- java异常处理机制
CrazyMizzz
java
java异常关键字有以下几个,分别为 try catch final throw throws
他们的定义分别为
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating
- hive 数据插入DML语法汇总
daizj
hiveDML数据插入
Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l
- 工厂设计模式
dcj3sjt126com
设计模式
使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。 工厂模式
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。
Example #1 调用工厂方法(带参数)
<?phpclass Example{
- mysql字符串查找函数
dcj3sjt126com
mysql
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st
- jvm内存管理
easterfly
jvm
一、JVM堆内存的划分
分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。
工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中;
年老代满了之后会执行major gc,这个是stop the word模式,执行
- CentOS-6.3安装配置JDK-8
gengzg
centos
JAVA_HOME=/usr/java/jdk1.8.0_45
JRE_HOME=/usr/java/jdk1.8.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME
- 【转】关于web路径的获取方法
huangyc1210
Web路径
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项
- php里获取第一个中文首字母并排序
远去的渡口
数据结构PHP
很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的:
Array
(
[0] => Array
(
[sid] => 2885842
[recetcstoredpay] =&g
- java内部类
hm4123660
java内部类匿名内部类成员内部类方法内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。
&nb
- Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten
zhb8015
maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。
maven pom:
<dependency>
<groupId>org.hibernate</groupId>
<ar
- Spark 性能相关参数配置详解-任务调度篇
Stark_Summer
sparkcachecpu任务调度yarn
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。
由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便
- css3滤镜
wangkeheng
htmlcss
经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。
html代码:
<a href='' class='icon'><img src='utv.jpg' /></a>
css代码:
.icon{-webkit-filter: graysc