CLAHE算法对于医学图像,特别是医学红外图像的增强效果非常明显。
在OpenCV中已经实现了CLAHE,但是它在使用过程中,存在参数选择的问题。为了从根本上搞明白,我参考了网络上的一些代码
实现了基于OpenCV的CLAHE实现和研究。从最基本的开始做,分别实现HE算法,AHE算法,CLHE算法和CLAHE算法。素材分别采用了手部和手臂的红外图片,同时调用OpenCV生成代码和自己编写代码进行比对。
调用代码和实现效果:
);
    Mat dst ;
}
原始图像
GOCLAHE效果
OpenCV CLAHE效果
HE算法:Mat eaualizeHist_GO(Mat src)
{
    ] };
    ] .};
     ;i;j;i  ; i)  
            C[i] .0f ] .0f ;i ;j   ;
        }  
    }  
    return HT_GO;
}
 
AHE算法:
Mat aheGO(Mat src,)
{
    Mat AHE_GO ][] };
    ][] .};
    ;i;j ; k  ; k)  
                    C2[num][k] .0f ] .0f ;i;j  ;
                }  
            } 
        }
    }
    return AHE_GO;
}
CLHE算法:
)
{
    ] };
    ] .};
     ;i;j;  
     ;  
     ; k  ; k;  
     ; k  ; k;i  ; i)  
            C[i] .0f ] .0f ;i ;j   ;
        }  
    }  
    return CLHE_GO;
}
CLAHE不包括插值算法:
Mat claheGoWithoutInterpolation(Mat src, )
{
    Mat CLAHE_GO ][] };
    ][] .};
    ;i;j;  
             ;  
             ; k  ; k;  
             ; k  ; k ; k  ; k)  
                    C2[num][k] .0f ] .0f ;i;j  ;
                }  
            } 
        }
    
     }  
    return CLAHE_GO;
}
CLAHE算法:

Mat claheGO(Mat src,)
{
    Mat CLAHE_GO ][] };
    ][] .};
    ;i;j;  
             ;  
             ; k  ; k;  
             ; k  ; k ; k  ; k)  
                    C2[num][k] .0f ] .0f  ; i  ; j  )  
            {  
                ;  
                CLAHE_GO.at);  
            } ))){  
                );  
                CLAHE_GO.at);  
            })) ){  
                ;  
                CLAHE_GO.at);  
            })) ))){  
                ;  
                CLAHE_GO.at);  
            }  
             )  
            {  
                ;  
                ))).0f);  
            }))){  
                ;  
                ))).0f);  
            } ){  
                );  
                ;  
                )).0f);  
            })) ){  
                );  
                ;  
                )).0f);  
            }  
            ));  
                )).0f)).0f);  
            }  
            ) );         
        }  
    }  
  return CLAHE_GO;
}
原始图像
GOCLAHE效果
OpenCV CLAHE效果
从结果上来看,GOCLAHE方法和OpenCV提供的CLAHE方法是一样的。
再放一组图片
代码实现之后,留下两个问题:
集中在这段代码
;  
             ;  
1、在进行CLAHE中CL的计算,也就是限制对比度的计算的时候,参数的选择缺乏依据。在原始的《GEMS》中提供的参数中, fCliplimit  = 4  , uiNrBins  = 255.但是在OpenCV的默认参数中,这里是40.就本例而言,如果从结果上反推,我看10比较好。这里参数的选择缺乏依据;
2、CLHE是可以用来进行全局直方图增强的,那么这个时候,这个average 如何计算,肯定不是width * height/255,这样就太大了,算出来的LIMIT根本没有办法获得。
但是就实现血管增强的效果而言,这些结果是远远不够的。一般来说,对于CLAHE计算出来的结果,进行Frangi增强或者使用超分辨率增强?结果就是要把血管区域强化出来。
 

最新文章

  1. IOS开发之开发者账号遇到的bug
  2. MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
  3. 【Android 基础】Android中全屏或者取消标题栏
  4. hdu 1242 Rescue
  5. 使用Intellij IDEA从零使用Spring MVC
  6. Linux文件目录结构说明
  7. 【转】目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结 -- 不错
  8. linux操作Oracle导入导出dmp数据命令
  9. 【转】CxImage图像库的使用
  10. SwifThumb.com 第一家Swift开发人员论坛 QQ群 343549891
  11. 扩展kmp——原创
  12. POJ 2246 Matrix Chain Multiplication
  13. audio标签
  14. python+selenium安装
  15. 微信小程序echarts层级太高
  16. 彻底理解cookie,session,token
  17. WPF window 子窗口反馈效果(抖动/阴影渐变)
  18. 2019.02.28 bzoj3527: [Zjoi2014]力(fft)
  19. mysql表分区案例
  20. MATLAB线性方程组的迭代求解法

热门文章

  1. 1、安卓数据存储机制——sharedPreference
  2. ASCII 码对应表
  3. poi 导出excel 异常处理方式--曲线救国法
  4. Win10還原成最乾淨的狀態 不必重灌
  5. 在新浪sae上部署WeRoBot
  6. Core Data需求
  7. iOS 之 NSString 去除前后空格和回车键
  8. Nginx 限流
  9. QT移植
  10. 在Java中打开浏览器