OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
cv::bioinspired::Retina 类参考抽象

允许将Gipsa/Listic Labs模型与OpenCV一起使用的类。更多...

#include <opencv2/bioinspired/retina.hpp>

cv::bioinspired::Retina 的协作图

公开成员函数

virtual void activateContoursProcessing (const bool activate)=0
 激活/禁用旁细胞通路处理(轮廓信息提取),默认激活。
 
virtual void activateMovingContoursProcessing (const bool activate)=0
 激活/禁用大细胞通路处理(运动信息提取),默认激活。
 
virtual void applyFastToneMapping (InputArray inputImage, OutputArray outputToneMappedImage)=0
 该方法处理图像旨在校正其亮度、修正背光问题并增强阴影中的细节。
 
virtual void clearBuffers ()=0
 清除所有视网膜缓冲区。
 
virtual Size getInputSize ()=0
 获取视网膜输入缓冲区大小。
 
virtual void getMagno (OutputArray retinaOutput_magno)=0
 视网膜运动通道的访问器(模拟外周视觉)。
 
virtual Mat getMagnoRAW () const =0
 
virtual void getMagnoRAW (OutputArray retinaOutput_magno)=0
 视网膜运动通道的访问器(模拟外周视觉)。
 
virtual Size getOutputSize ()=0
 获取视网膜输出缓冲区大小,如果应用了空间对数变换,它可能与输入大小不同。
 
virtual RetinaParameters getParameters ()=0
 
virtual void getParvo (OutputArray retinaOutput_parvo)=0
 视网膜细节通道的访问器(模拟中央凹视觉)。
 
virtual Mat getParvoRAW () const =0
 
virtual void getParvoRAW (OutputArray retinaOutput_parvo)=0
 视网膜细节通道的访问器(模拟中央凹视觉)。
 
virtual String printSetup ()=0
 输出一个显示所用参数设置的字符串。
 
virtual void run (InputArray inputImage)=0
 允许视网膜应用于输入图像的方法。
 
virtual void setColorSaturation (const bool saturateColors=true, const float colorSaturationValue=4.0f)=0
 将颜色饱和度激活为颜色解复用过程的最后一步 -> 该饱和度是应用于解复用图像每个通道的 S 形函数。
 
virtual void setup (cv::FileStorage &fs, const bool applyDefaultSetupOnFailure=true)=0
 
virtual void setup (RetinaParameters newParameters)=0
 
virtual void setup (String retinaParameterFile="", const bool applyDefaultSetupOnFailure=true)=0
 尝试打开一个XML视网膜参数文件来调整当前的视网膜实例设置。
 
virtual void setupIPLMagnoChannel (const bool normaliseOutput=true, const float parasolCells_beta=0.f, const float parasolCells_tau=0.f, const float parasolCells_k=7.f, const float amacrinCellsTemporalCutFrequency=1.2f, const float V0CompressionParameter=0.95f, const float localAdaptintegration_tau=0.f, const float localAdaptintegration_k=7.f)=0
 为内网状层(IPL)大细胞通道设置参数值。
 
virtual void setupOPLandIPLParvoChannel (const bool colorMode=true, const bool normaliseOutput=true, const float photoreceptorsLocalAdaptationSensitivity=0.7f, const float photoreceptorsTemporalConstant=0.5f, const float photoreceptorsSpatialConstant=0.53f, const float horizontalCellsGain=0.f, const float HcellsTemporalConstant=1.f, const float HcellsSpatialConstant=7.f, const float ganglionCellsSensitivity=0.7f)=0
 设置OPL和IPL旁细胞通道(参见生物模型)。
 
virtual void write (FileStorage &fs) const CV_OVERRIDE=0
 
virtual void write (String fs) const =0
 以XML/YML格式写入参数信息。
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 Algorithm 为空(例如,在最开始或读取不成功后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
void write (FileStorage &fs, const String &name) const
 

静态公开成员函数

static Ptr< Retinacreate (Size inputSize)
 
static Ptr< Retinacreate (Size inputSize, const bool colorMode, int colorSamplingMethod=RETINA_COLOR_BAYER, const bool useRetinaLogSampling=false, const float reductionFactor=1.0f, const float samplingStrength=10.0f)
 从标准化接口构造:检索一个指向Retina实例的智能指针。
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点中读取算法。
 

更多继承的成员

- 从 cv::Algorithm 继承的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细说明

允许 Gipsa/Listic Labs 模型与 OpenCV 一起使用的类。

此视网膜模型支持时空图像处理(可应用于静态图像、视频序列)。简而言之,这些是视网膜模型的特性:

  • 它应用频谱白化(中频细节增强)。
  • 高频时空噪声降低。
  • 低频亮度降低(亮度范围压缩)。
  • 局部对数亮度压缩允许在低光照条件下增强细节。

用途:此模型基本上可用于时空视频效果,也可用于:_使用getParvo方法输出矩阵:纹理分析,具有增强的信噪比和增强的细节,对输入图像的亮度范围具有鲁棒性_使用getMagno方法输出矩阵:运动分析,同样具有前面提到的属性。

更多信息,请参考以下论文:Benoit A., Caplier A., Durette B., Herault, J., "USING HUMAN VISUAL SYSTEM MODELING FOR BIO-INSPIRED LOW LEVEL IMAGE PROCESSING", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773, DOI: http://dx.doi.org/10.1016/j.cviu.2010.01.011 Vision: Images, Signals and Neural Networks: Models of Neural Processing in Visual Perception (Progress in Neural Processing), By: Jeanny Herault, ISBN: 9814273686. WAPI (Tower ID): 113266891.

视网膜滤波器包含了博士/研究同事的研究贡献,其代码由作者重绘:请查看retinacolor.hpp模块,了解Brice Chaix de Lavarene的色彩马赛克/去马赛克以及参考论文:B. Chaix de Lavarene, D. Alleysson, B. Durette, J. Herault (2007). "Efficient demosaicing through recursive filtering", IEEE International Conference on Image Processing ICIP 2007 请查看imagelogpolprojection.hpp,了解源自Barthelemy Durette博士与Jeanny Herault合作的视网膜空间对数采样。还提出了一个Retina/V1皮层投影,源自Jeanny的讨论。更多信息请参见上面引用的Jeanny Heraults的书。

成员函数说明

◆ activateContoursProcessing()

virtual void cv::bioinspired::Retina::activateContoursProcessing ( const bool activate)
纯虚函数
Python
cv.bioinspired.Retina.activateContoursProcessing(activate) -> None

激活/禁用旁细胞通路处理(轮廓信息提取),默认激活。

参数
activate如果旁细胞(轮廓信息提取)输出应被激活,则为true,否则为false...如果激活,则可以使用Retina::getParvo方法检索旁细胞输出。

◆ activateMovingContoursProcessing()

virtual void cv::bioinspired::Retina::activateMovingContoursProcessing ( const bool activate)
纯虚函数
Python
cv.bioinspired.Retina.activateMovingContoursProcessing(activate) -> None

激活/禁用大细胞通路处理(运动信息提取),默认激活。

参数
activate如果大细胞输出应被激活,则为true,否则为false...如果激活,则可以使用getMagno方法检索大细胞输出。

◆ applyFastToneMapping()

virtual void cv::bioinspired::Retina::applyFastToneMapping ( InputArray inputImage,
OutputArray outputToneMappedImage )
纯虚函数
Python
cv.bioinspired.Retina.applyFastToneMapping(inputImage[, outputToneMappedImage]) -> outputToneMappedImage

该方法处理图像旨在校正其亮度、修正背光问题并增强阴影中的细节。

此方法旨在执行高动态Range图像色调映射(将大于8位/像素的图像压缩到8位/像素)。这是Retina旁细胞模型(run/getParvo方法调用的简化版本),因为它不包括模拟视网膜外网状层执行频谱白化和许多其他功能的时空滤波器。然而,它在色调映射方面效果很好,而且速度更快。

请查看演示和实验部分,了解示例以及如何使用原始视网膜模型和此方法执行色调映射。

参数
inputImage要处理的输入图像(应以浮点格式编码:CV_32F, CV_32FC1, CV_32F_C3, CV_32F_C4,第四个通道将被忽略)。
outputToneMappedImage输出的8位/通道色调映射图像(CV_8U或CV_8UC3格式)。

◆ clearBuffers()

virtual void cv::bioinspired::Retina::clearBuffers ( )
纯虚函数
Python
cv.bioinspired.Retina.clearBuffers() -> None

清除所有视网膜缓冲区。

(相当于长时间闭眼后睁开眼睛;o)注意调用此方法后立即发生的瞬态变化。

◆ create() [1/2]

static Ptr< Retina > cv::bioinspired::Retina::create ( Size inputSize)
static (静态)
Python
cv.bioinspired.Retina.create(inputSize) -> retval
cv.bioinspired.Retina.create(inputSize, colorMode[, colorSamplingMethod[, useRetinaLogSampling[, reductionFactor[, samplingStrength]]]]) -> retval
cv.bioinspired.Retina_create(inputSize) -> retval
cv.bioinspired.Retina_create(inputSize, colorMode[, colorSamplingMethod[, useRetinaLogSampling[, reductionFactor[, samplingStrength]]]]) -> retval

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ create() [2/2]

static Ptr< Retina > cv::bioinspired::Retina::create ( Size inputSize,
const bool colorMode,
int colorSamplingMethod = RETINA_COLOR_BAYER,
const bool useRetinaLogSampling = false,
const float reductionFactor = 1.0f,
const float samplingStrength = 10.0f )
static (静态)
Python
cv.bioinspired.Retina.create(inputSize) -> retval
cv.bioinspired.Retina.create(inputSize, colorMode[, colorSamplingMethod[, useRetinaLogSampling[, reductionFactor[, samplingStrength]]]]) -> retval
cv.bioinspired.Retina_create(inputSize) -> retval
cv.bioinspired.Retina_create(inputSize, colorMode[, colorSamplingMethod[, useRetinaLogSampling[, reductionFactor[, samplingStrength]]]]) -> retval

从标准化接口构造:检索一个指向Retina实例的智能指针。

参数
inputSize输入帧的大小。
colorMode选择的处理模式:带颜色处理或不带颜色处理。
colorSamplingMethod指定将使用哪种颜色采样。
useRetinaLogSampling激活视网膜对数采样,如果为true,则可以使用以下两个参数。
reductionFactor仅当参数useRetinaLogSampling=true时有用,指定输出帧的缩减因子(因为中心(中央凹)是高分辨率的,而角落可以欠采样,因此允许输出缩减而不会损失精度)。
samplingStrength仅当参数useRetinaLogSampling=true时有用,指定应用的对数尺度的强度。

◆ getInputSize()

virtual Size cv::bioinspired::Retina::getInputSize ( )
纯虚函数
Python
cv.bioinspired.Retina.getInputSize() -> retval

获取视网膜输入缓冲区大小。

返回
视网膜输入缓冲区大小。

◆ getMagno()

virtual void cv::bioinspired::Retina::getMagno ( OutputArray retinaOutput_magno)
纯虚函数
Python
cv.bioinspired.Retina.getMagno([, retinaOutput_magno]) -> retinaOutput_magno

视网膜运动通道的访问器(模拟外周视觉)。

警告,getMagnoRAW方法返回的缓冲区未缩放到[0;255]范围,而非RAW方法允许检索归一化的矩阵。

参数
retinaOutput_magno输出缓冲区(必要时重新分配),格式可以是
  • Mat,此输出已缩放到OpenCV中用于标准8位图像处理。
  • RAW方法实际返回一个1D矩阵(编码为M1, M2,... Mn),此输出是原始视网膜滤波器模型的输出,没有任何量化或缩放。
另请参阅
getMagnoRAW

◆ getMagnoRAW() [1/2]

virtual Mat cv::bioinspired::Retina::getMagnoRAW ( ) const
纯虚函数
Python
cv.bioinspired.Retina.getMagnoRAW([, retinaOutput_magno]) -> retinaOutput_magno
cv.bioinspired.Retina.getMagnoRAW() -> retval

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ getMagnoRAW() [2/2]

virtual void cv::bioinspired::Retina::getMagnoRAW ( OutputArray retinaOutput_magno)
纯虚函数
Python
cv.bioinspired.Retina.getMagnoRAW([, retinaOutput_magno]) -> retinaOutput_magno
cv.bioinspired.Retina.getMagnoRAW() -> retval

视网膜运动通道的访问器(模拟外周视觉)。

另请参阅
getMagno

◆ getOutputSize()

virtual Size cv::bioinspired::Retina::getOutputSize ( )
纯虚函数
Python
cv.bioinspired.Retina.getOutputSize() -> retval

获取视网膜输出缓冲区大小,如果应用了空间对数变换,它可能与输入大小不同。

返回
视网膜输出缓冲区大小。

◆ getParameters()

virtual RetinaParameters cv::bioinspired::Retina::getParameters ( )
纯虚函数
返回
当前参数设置。

◆ getParvo()

virtual void cv::bioinspired::Retina::getParvo ( OutputArray retinaOutput_parvo)
纯虚函数
Python
cv.bioinspired.Retina.getParvo([, retinaOutput_parvo]) -> retinaOutput_parvo

视网膜细节通道的访问器(模拟中央凹视觉)。

警告,getParvoRAW方法返回的缓冲区未缩放到[0;255]范围,而非RAW方法允许检索归一化的矩阵。

参数
retinaOutput_parvo输出缓冲区(必要时重新分配),格式可以是
  • Mat,此输出已缩放到OpenCV中用于标准8位图像处理。
  • RAW方法实际返回一个1D矩阵(编码为R1, R2, ... Rn, G1, G2, ..., Gn, B1, B2, ...Bn),此输出是原始视网膜滤波器模型的输出,没有任何量化或缩放。
另请参阅
getParvoRAW

◆ getParvoRAW() [1/2]

virtual Mat cv::bioinspired::Retina::getParvoRAW ( ) const
纯虚函数
Python
cv.bioinspired.Retina.getParvoRAW([, retinaOutput_parvo]) -> retinaOutput_parvo
cv.bioinspired.Retina.getParvoRAW() -> retval

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ getParvoRAW() [2/2]

virtual void cv::bioinspired::Retina::getParvoRAW ( OutputArray retinaOutput_parvo)
纯虚函数
Python
cv.bioinspired.Retina.getParvoRAW([, retinaOutput_parvo]) -> retinaOutput_parvo
cv.bioinspired.Retina.getParvoRAW() -> retval

视网膜细节通道的访问器(模拟中央凹视觉)。

另请参阅
getParvo

◆ printSetup()

virtual String cv::bioinspired::Retina::printSetup ( )
纯虚函数
Python
cv.bioinspired.Retina.printSetup() -> retval

输出一个显示所用参数设置的字符串。

返回
一个包含格式化参数信息的字符串。

◆ run()

virtual void cv::bioinspired::Retina::run ( InputArray inputImage)
纯虚函数
Python
cv.bioinspired.Retina.run(inputImage) -> None

允许视网膜应用于输入图像的方法。

调用run后,封装的视网膜模块已准备好通过专用访问器提供其输出,请参阅getParvo和getMagno方法。

参数
inputImage要处理的输入Mat图像,可以是灰度级或BGR,编码为任何格式(从8位到16位)。

◆ setColorSaturation()

virtual void cv::bioinspired::Retina::setColorSaturation ( const bool saturateColors = true,
const float colorSaturationValue = 4.0f )
纯虚函数
Python
cv.bioinspired.Retina.setColorSaturation([, saturateColors[, colorSaturationValue]]) -> None

将颜色饱和度激活为颜色解复用过程的最后一步 -> 该饱和度是应用于解复用图像每个通道的 S 形函数。

参数
saturateColors布尔值,表示是否激活(true)或禁用(false)颜色饱和。
colorSaturationValue饱和度因子:应用于色度缓冲区的简单因子。

◆ setup() [1/3]

virtual void cv::bioinspired::Retina::setup ( cv::FileStorage & fs,
const bool applyDefaultSetupOnFailure = true )
纯虚函数
Python
cv.bioinspired.Retina.setup([, retinaParameterFile[, applyDefaultSetupOnFailure]]) -> None

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

参数
fs包含视网膜参数的打开的Filestorage。
applyDefaultSetupOnFailure如果发生错误必须抛出异常,则设置为true。

◆ setup() [2/3]

virtual void cv::bioinspired::Retina::setup ( RetinaParameters newParameters)
纯虚函数
Python
cv.bioinspired.Retina.setup([, retinaParameterFile[, applyDefaultSetupOnFailure]]) -> None

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

参数
newParameters一个参数结构,已更新为新的目标配置。

◆ setup() [3/3]

virtual void cv::bioinspired::Retina::setup ( String retinaParameterFile = "",
const bool applyDefaultSetupOnFailure = true )
纯虚函数
Python
cv.bioinspired.Retina.setup([, retinaParameterFile[, applyDefaultSetupOnFailure]]) -> None

尝试打开一个XML视网膜参数文件来调整当前的视网膜实例设置。

  • 如果 XML 文件不存在,则应用默认设置
  • 警告:如果读取的 XML 文件无效,将抛出异常
    参数
    retinaParameterFile参数文件名。
    applyDefaultSetupOnFailure如果发生错误必须抛出异常,则设置为true。
    您可以使用Retina::getParameters方法检索当前参数结构,并在运行Retina::setup方法之前更新它。

◆ setupIPLMagnoChannel()

virtual void cv::bioinspired::Retina::setupIPLMagnoChannel ( const bool normaliseOutput = true,
const float parasolCells_beta = 0.f,
const float parasolCells_tau = 0.f,
const float parasolCells_k = 7.f,
const float amacrinCellsTemporalCutFrequency = 1.2f,
const float V0CompressionParameter = 0.95f,
const float localAdaptintegration_tau = 0.f,
const float localAdaptintegration_k = 7.f )
纯虚函数
Python
cv.bioinspired.Retina.setupIPLMagnoChannel([, normaliseOutput[, parasolCells_beta[, parasolCells_tau[, parasolCells_k[, amacrinCellsTemporalCutFrequency[, V0CompressionParameter[, localAdaptintegration_tau[, localAdaptintegration_k]]]]]]]]) -> None

为内网状层(IPL)大细胞通道设置参数值。

该通道处理来自外网状层(OPL)处理阶段的外周视觉信号,它允许增强运动信息。它与细节通道不相关。详情请参阅参考论文。

参数
normaliseOutput指定输出是否(true)缩放到0到255之间,或者不(false)。
parasolCells_beta用于视网膜IPL级别局部对比度适应(用于神经节细胞局部适应)的低通滤波器增益,典型值为0。
parasolCells_tau用于视网膜IPL级别局部对比度适应(用于神经节细胞局部适应)的低通滤波器时间常数,单位是帧,典型值为0(即时响应)。
parasolCells_k用于视网膜IPL级别局部对比度适应(用于神经节细胞局部适应)的低通滤波器空间常数,单位是像素,典型值为5。
amacrinCellsTemporalCutFrequency大细胞通路(运动信息通道)的一阶高通滤波器的时常数,单位是帧,典型值为1.2。
V0CompressionParameter神经节细胞局部适应输出的压缩强度,设为0.6到1之间的值以获得最佳结果,较高的值会更强地增加低值灵敏度……输出会更快饱和,推荐值:0.95。
localAdaptintegration_tau指定用于局部适应计算的局部“运动平均值”计算中涉及的低通滤波器的时常数。
localAdaptintegration_k指定用于局部适应计算的局部“运动平均值”计算中涉及的低通滤波器的空间常数。

◆ setupOPLandIPLParvoChannel()

virtual void cv::bioinspired::Retina::setupOPLandIPLParvoChannel ( const bool colorMode = true,
const bool normaliseOutput = true,
const float photoreceptorsLocalAdaptationSensitivity = 0.7f,
const float photoreceptorsTemporalConstant = 0.5f,
const float photoreceptorsSpatialConstant = 0.53f,
const float horizontalCellsGain = 0.f,
const float HcellsTemporalConstant = 1.f,
const float HcellsSpatialConstant = 7.f,
const float ganglionCellsSensitivity = 0.7f )
纯虚函数
Python
cv.bioinspired.Retina.setupOPLandIPLParvoChannel([, colorMode[, normaliseOutput[, photoreceptorsLocalAdaptationSensitivity[, photoreceptorsTemporalConstant[, photoreceptorsSpatialConstant[, horizontalCellsGain[, HcellsTemporalConstant[, HcellsSpatialConstant[, ganglionCellsSensitivity]]]]]]]]]) -> None

设置OPL和IPL旁细胞通道(参见生物模型)。

OPL指视网膜的外网状层,它允许时空滤波,该滤波可以使频谱变白并降低时空噪声,同时衰减全局亮度(低频能量)。IPL旁是指OPL的下一个处理阶段,它指的是视网膜内网状层的一部分,它允许在中央凹视觉中实现高轮廓敏感度。详情请参阅参考论文。更多信息,请参考论文Benoit A., Caplier A., Durette B., Herault, J., "USING HUMAN VISUAL SYSTEM MODELING FOR BIO-INSPIRED LOW LEVEL IMAGE PROCESSING", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773, DOI: http://dx.doi.org/10.1016/j.cviu.2010.01.011

参数
colorMode指定是否(true)处理颜色或不(false)处理颜色,然后处理灰度图像。
normaliseOutput指定输出是否(true)缩放到0到255之间,或者不(false)。
photoreceptorsLocalAdaptationSensitivity感光器灵敏度范围为0-1(值越高,对数压缩效果越明显)。
photoreceptorsTemporalConstant感光器一阶低通滤波器的时常数,用于切断高时间频率(噪声或快速运动),单位是帧,典型值为1帧。
photoreceptorsSpatialConstant感光器一阶低通滤波器的空间常数,用于切断高空间频率(噪声或粗轮廓),单位是像素,典型值为1像素。
horizontalCellsGain水平细胞网络的增益,如果为0,则输出的平均值为零,如果参数接近1,则亮度不受滤波,并且在输出中仍可获得,典型值为0。
HcellsTemporalConstant水平细胞一阶低通滤波器的时常数,用于切断低时间频率(局部亮度变化),单位是帧,典型值为1帧,与感光器相同。
HcellsSpatialConstant水平细胞一阶低通滤波器的空间常数,用于切断低空间频率(局部亮度),单位是像素,典型值为5像素,此值也用于在计算神经节细胞级别(内网状层旁细胞模型)的局部对比度适应时计算局部对比度。
ganglionCellsSensitivity神经节细胞局部适应输出的压缩强度,设为0.6到1之间的值以获得最佳结果,较高的值会更强地增加低值灵敏度……输出会更快饱和,推荐值:0.7。

◆ write() [1/2]

virtual void cv::bioinspired::Retina::write ( FileStorage & fs) const
纯虚函数
Python
cv.bioinspired.Retina.write(fs) -> None

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

cv::Algorithm 中重新实现。

◆ write() [2/2]

virtual void cv::bioinspired::Retina::write ( String fs) const
纯虚函数
Python
cv.bioinspired.Retina.write(fs) -> None

以XML/YML格式写入参数信息。

参数
fs将被打开并用格式化参数信息写入的XML文件的文件名。

该类的文档由以下文件生成: