原始定义:rgb1_to_gray 类似函数rgb3_to_gray  
我们来试验一下,转换细节。我创建三个1*1的灰度图,分别测试以小六种情况。
一,R=100,G=0,B=0
二,R=200,G=0 ,B = 0
三,R=0  ,G=200,B=0
四,R=0,G=0,B=200
五,R=200,G=200,B=0
六,R=200,G=200,B=200
结果分别为:
一,30
二,60
三,117
四,23
五,177
六,200

规则很明显,从官网查到的如下,和我们的测试结果类似。
gray = 0.299 * red + 0.587 * green + 0.114 * blue .

源码如下:
 byte[] barr = { 200 };
            HObject imgR = WHCSHalCon.Base.CreateByteImage(barr, 1);
            barr[0] = 200;
            HObject imgG = WHCSHalCon.Base.CreateByteImage(barr, 1);
            barr[0] = 200;
            HObject imgB = WHCSHalCon.Base.CreateByteImage(barr, 1);
            HObject imgGray;
            HOperatorSet.Rgb3ToGray(imgR, imgG, imgB, out imgGray);
            HTuple ptr, tmp;
            HOperatorSet.GetImagePointer1(imgGray, out ptr, out tmp, out tmp, out tmp);
            byte[] bimg = new byte[barr.Length];
            System.Runtime.InteropServices.Marshal.Copy(ptr, bimg, 0, barr.Length);

开发环境:win7 + VS2022 + halcon12

posted on   闻缺陷则喜何志丹  阅读(34)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2022-09-26 utf8一个汉字最多需要多少个byte
2020-09-26 PCLint9可以发现 VS2005不能发现的错误



点击右上角即可分享
微信分享提示