pydensecrf中DenseCRF2D addPairwiseGaussian函数和addPairwiseBilateral函数

源码为C++,所以安装使用时需要提前安装Cpython。如果有错一直找不到原因的朋友可以试试安装Cpython。
这两个函数都是crf中从一元势升级二元势的函数。
一元势是一个像素自身的能量,二元势是两个相邻像素之间的能量。二元势即用于描述像素点和像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同的标签。

//sx,sy为坐标
//The compat argument can be any of the following:
//	A number, then a PottsCompatibility is being used.
//	A 1D array, then a DiagonalCompatibility is being used.
//	A 2D array, then a MatrixCompatibility is being used.
//Possible values for the kernel argument are:
//	CONST_KERNEL
//	DIAG_KERNEL (the default)
//	FULL_KERNEL
//Possible values for the normalization argument are:
//	NO_NORMALIZATION
//	NORMALIZE_BEFORE
//	NORMALIZE_AFTER

NORMALIZE_SYMMETRIC (the default)
void DenseCRF2D::addPairwiseGaussian ( float sx, float sy, LabelCompatibility * function, KernelType kernel_type, NormalizationType normalization_type ) {
	MatrixXf feature( 2, N_ );//建立一个2行N列的矩阵
	for( int j=0; j<H_; j++ )
		for( int i=0; i<W_; i++ ){
			feature(0,j*W_+i) = i / sx;
			feature(1,j*W_+i) = j / sy;
		}//矩阵第一行是该像素横坐标在矩阵中的位置,第二行是纵坐标的
	addPairwiseEnergy( feature, function, kernel_type, normalization_type );//把特征矩阵加入像素间能量对象中
}
//该函数仅用于RBG三通道的图片,其他图片如灰度图可以使用上个函数
void DenseCRF2D::addPairwiseBilateral ( float sx, float sy, float sr, float sg, float sb, const unsigned char* im, LabelCompatibility * function, KernelType kernel_type, NormalizationType normalization_type ) {
	MatrixXf feature( 5, N_ );
	for( int j=0; j<H_; j++ )
		for( int i=0; i<W_; i++ ){
			feature(0,j*W_+i) = i / sx;
			feature(1,j*W_+i) = j / sy;
			feature(2,j*W_+i) = im[(i+j*W_)*3+0] / sr;
			feature(3,j*W_+i) = im[(i+j*W_)*3+1] / sg;
			feature(4,j*W_+i) = im[(i+j*W_)*3+2] / sb;
		}//新加入rgb的定义
	addPairwiseEnergy( feature, function, kernel_type, normalization_type );
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Env1sage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值