xuncv/opencv_aardio

反馈几个问题

Opened this issue · 0 comments

iycai commented

1、cv2.Mat 和 cv2.MatExpr 库 的库文件名,首字母未改为大写(mat.aardio matExpr.aardio),好像会造成传错参数后,无法弹出错误提示,直接退出的问题。
2、从 bitmap 创建 cv2.Mat 对象时,有些像素格式的图片显示不正常,我使用以下代码显示常见像素格式图片:

    //bitmap传入
    elseif(tArg == type.table && arg[["pBitmap"]]){
        var data = arg.lockMemory(,0x26200A);
        err,ret = dll.core_Mat_new8(arg.height,arg.width,0x18/*_CV_8UC4*/,data.Scan0,data.Stride,{ptr value});
        this.handle = ret.value;
        arg.unlockMemory(data);
    }

3、cv2.Mat 对象 的toBitmap() 好像会造成内存泄漏(即使转换后,手动释放 cv2.Mat对象 和bitmap对象),我使用以下代码实现,暂时未发现内存大幅上涨的现象(转换后,手动释放 cv2.Mat对象 和bitmap对象)

toBitmap = function(){
	if(this.empty() or this.depth() != 0/*_CV_8U*/) return null;
    var pixelFormats = {
    	[1] = 0x30803;
    	[3] = 0x21808;
    	[4] = 0x26200A;
    }
    
    var pixelFormat = pixelFormats[this.channels()];
    var stride = this.step1();
    if(stride % 4 ){
    	stride = stride - (stride % 4 ) + 4;
    }
	return ..gdip.bitmap( this.width,this.height,pixelFormat,this.data,stride );
}