计算机中的颜色——VB2005中的Color结构

本文介绍了VB2005中Color结构的重要属性和方法,包括颜色的RGB分量、预置颜色和HSB属性。通过GetHue、GetSaturation和GetBrightness方法可以获取颜色的色相、饱和度和亮度。文章还探讨了色相对比的概念,如同类色、邻近色、对比色和互补色相对比的特点和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

VB2005中,用来表示颜色的是Color结构,注意是结构,也就是不能继承的。下面把Color结构中的重要属性方法等介绍一下。大部分的资料来源于微软的MSDN

重要的属性:

颜色的三分量

R:红色的分量,取值范围为0255

G:绿色的分量,取值范围为0255

B:蓝色的分量,取值范围为0255

     颜色的类型:

         IsKnownColor:判断颜色是否是系统预置颜色

         IsNamedColor:判断颜色是否是系统预置颜色

         IsSystemColor:判断颜色是否是系统颜色

     预置的颜色:

         属性太多,主要是获取系统的预置颜色。例如:OldLace

 

     重要的方法:

         FromArgb:从指定的颜色的三个分量创建一个颜色。

              例如:下面这个代码获得红色

                   tC=Color.FromArgb25500

         FromKnownColor:获得指定的预置颜色。参数是一个枚举值或者是一个整形变量

        

获得颜色的HSB属性。

         GetHue:获得颜色的色相值。取值范围为0360

         GetSaturation:获得颜色的饱和值。取值为01,值越高,颜色越纯,值为0时,颜色为灰度值。

         GetBrightness:获得颜色的亮度值。取值为01,值越高,颜色越亮,值为0时,颜色为黑色。

 

     这个比较重要,许多颜色转换都要利用其中的道理。比较疑惑的是,为什么没有设置这三个属性的方法呢?

    

     下面的文章来源于网络

色相对比因色相的差别而形成的色彩对比叫色相对比。色相的差别虽是因可见光度的长短差别所形成,但不能完全根据波长的差别来确定色相的差别和确定色相的对比程度。因为红色光与紫色光的波长差虽然最大,但都处于可见光的两极,都接近不可见光的波长。从眼睛感觉的角度分析,它们的色相是接近的,色相环反应了这一规律。因此在度量色相差时,不能只依测光器和可见光谱,而应借助色相环。色相对比的强弱,决定于色相在色相环上的距离。色相距离在十五度以内的对比,一般看作用色相的不同明度与纯度的对比,因为距离十五度的色相属于模糊的较难区分的色相。这样的色相对比称为同类色相对比,是最弱的色相对比。色相距离在十五度以上,四十五度左右的对比,称为邻近色相对比,或近似色相对比,是软弱的色相对比。色相距离在一百三十度左右的对比,一般称为对比色相对比,是色相中对比。色相距离在一百八十度左右的对比,称互补色相对比,是色相强对比。色相距离如果大于一百八十度,从余下的弧度来看,必然小于一百八十度。所以距离恰好在一百八十度的对比,称最强色相对比。

任何一个色相都可以自为主色,组成同类、近似、对比或互补色相对比。人们欢迎色彩。这就是说有一定纯度的色彩,不同程度的色相对比,既有利于人们识别”不同程度的色相差异,也可以满足人们对色相感的不同要求。实际上同类色相对比是同一色相里的不同明度与纯度色彩的对比。这种色相的同一,不但不是各种色相的对比因素,而是色相调和的因素,也是把对比中的各色统一起来的纽带。因此,这样的色相对比,色相感就显得单纯、柔和、谐调,无论总的色相倾向是否鲜明,调子都很容易统一调和。这种对比方法比较容易为初学者掌握。仅仅改变一下色相,就会使总色调改观。这类调子和稍强的色相对比调子结合在一起时,则感到高雅、文静,相反则感到单调、平淡而无力。

邻近色相对比的色相感,要比同类色相对比明显些、丰富些.活泼些,可稍稍弥补同类色相对比的不足,可不能保持统一、谐调、单纯、雅致、柔和、耐看等优点。当备种类型的色相对比的色沉放在一起时,同类色相及邻近色相对比,均能保持其明确的色相倾向与统一的色相特征。这种效果则显得更鲜明,更完整,更容易被看见。这时,色调的冷暖特征及其感增效果就显得更有力量。对比,将在冷暖对比一节里再作详述。

对比色相对比的色相感,要比邻近色相对比鲜明、强烈、饱满。丰富,容易使人兴奋激动和造成视觉以及精神的疲劳。这类瞩子的组织比较复杂,统一的工作也比较难做。它不容易单调,而容易产生杂乱和过分刺激,造成倾向性不强,缺乏鲜明的个性。互补色相对比的色相感,要比对比色相对比更完整、更丰富、更强烈,更富有刺激性对比色相对比也会觉得单调、不能适应视觉的全色相刺激的习惯要求,互补色相对比就能满足这一要求,但它的短处是不安定、不协调、过分刺激,有一种幼稚、原始的和粗俗的感觉。要想把互补色相对比组织得倾向鲜明、统一与调和,配色技术的难度就更高了。

 

### OpenCV 和 Halcon 图像处理库特性差异与相似性 #### 特性对比 ##### 开发语言支持 OpenCV 主要支持 C++ 和 Python 两种编程语言[^1]。对于有较好 C++ 基础的学习者来说,C++ 是进行开发的理想选择;而 Python 则因其便捷性和快速迭代的优势成为日常学习的最佳工具。相比之下,Halcon 支持多种编程接口,包括但不限于 C/C++, C#, VB.NET, Java 等,并且拥有专为其设计的 HDevelop 集成开发环境。 ##### 参数调整便利性 在图像处理过程中,参数标定是一项重要任务。当使用 C++ 进行 OpenCV 的开发时,每一次更改都需要重新编译程序才能看到效果,这对于频繁调试而言较为不便。然而,通过一些技巧可以绕过这一限制,比如将可变数据作为外部配置读取而不必每次都重新构建项目。另一方面,Halcon 提供了一个图形化界面——HDevelop,允许用户直观地设置和调整各种操作符及其属性,极大地方便了实验阶段的工作流程。 ##### 数据结构表达方式 两者之间存在显著区别的是它们如何定义和管理内部使用的对象模型。具体来讲,在 Opencv 中会利用复杂的结构体或面向对象的概念来封装诸如矩阵、特征点等实体;相反,Halcon 更倾向于简单直接的方式,即用一组独立但关联紧密的标准变量集合来描述相同的信息[^3]。 ##### 模板匹配算法性能 关于模板匹配功能方面,尽管 OpenCV 自带了一套基于像素级相似性的解决方案,但是这种方法极易受光源条件变化的影响而导致失败率上升。为此,有人提出了改进方案,借鉴自 Halcon 所采用的技术路线—依靠边缘轮廓信息而非单纯的颜色分布来进行模式识别,从而提高了鲁棒性和适应范围[^4]。 ```cpp // 示例:OpenCV 实现边缘模板匹配(简化版) cv::Mat img_gray; cv::cvtColor(img_rgb, img_gray, cv::COLOR_BGR2GRAY); cv::Ptr<cv::FeatureDetector> detector = cv::ORB::create(); std::vector<cv::KeyPoint> keypoints_1, keypoints_2; detector->detect(img_gray, keypoints_1); cv::BFMatcher matcher(cv::NORM_HAMMING); std::vector<std::vector<cv::DMatch>> matches_all; matcher.knnMatch(desc_1, desc_2, matches_all, 2); // k=2 ``` #### 总结 综上所述,虽然二者都属于计算机视觉领域内重要的开源软件包/平台之一,但在实际应用中的侧重点各有千秋: - **易用性**:Python 绑定让 OpenCV 成为了入门者的首选; - **灵活性**:丰富的 API 接口使得开发者能够轻松集成第三方组件; - **稳定性**:经过长期优化后的核心模块保证了高效稳定的运行表现; - **专业度**:针对特定行业需求定制的功能集令其在市场上占据一定优势地位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值