KERNELBASE.dll 啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KERNELBASE.dll 啥原因相关的知识,希望对你有一定的参考价值。

参考技术A dll文件一般被存放在C:\Windows\System目录下。电脑系统文件因经常会受到病毒的侵扰,导致系统文件、dll文件等丢失、损坏,一些包括游戏在内的应用程序无法启动。
解决方法有:
1、用Windows系统盘功能进行文件修复;
2、若在此之前有一键备份过,可以重新还原;
3、从网上下载系统文件然后覆盖到原文件夹里;
4、由于从网上下载系统文件,可能会因为系统文件版本与操作系统不相符造成系统文件不兼容的情况,修复系统文件最好使用专业的工具进行一键修复。
5、可以用腾讯电脑管家修复下。打开电脑管家——电脑诊所——软件问题——缺少dll文件。本回答被提问者采纳
参考技术B 宰憋气怂谴勇猛辈

异常 KernelBase.dll

【中文标题】异常 KernelBase.dll【英文标题】:Exception KernelBase.dll 【发布时间】:2016-01-20 14:40:40 【问题描述】:

我正在使用带有 OpenCV 3.0 的 Visual Studio 2010。

以下代码尝试提取 HOG 特征以训练 SVM 分类器。但是,当我尝试在行中使用 HOG 的函数“计算”时

hog.compute(grayImg,descriptor,Size(),Size(),positions);

出现如下错误:

TrainSVM.exe 中 0x000007fefd9bb16d (KernelBase.dll) 中未处理的异常:Microsoft C++ 异常:内存位置 0x0026e1b0 处的 cv::Exception。

            String imagesPath = "Positivas/*.jpg"; 
            vector<String> fn;
            glob(imagesPath, fn, true); // recursive, if you want
            for (size_t i=0; i<fn.size(); i++)
            
                Mat img = imread(fn[i]);     
                std::vector<cv::Point> positions;
                positions.push_back(cv::Point(0,0));
                std::vector<float> descriptor;
                cv::Mat grayImg;//(patchHeight,patchWidth,CV_8UC1,0);
                cvtColor( img, grayImg, COLOR_BGR2GRAY );
                hog.compute(grayImg,descriptor,Size(),Size(),positions);

                Mat auxDescriptor = cv::Mat(descriptor);
                Mat descriptorMat(1,auxDescriptor.rows,CV_32FC1);
                transpose(auxDescriptor, descriptorMat);
                trainingData.push_back(descriptorMat);
                trainingLabels.push_back(labelPositive);

            

对此有什么想法吗?提前致谢!

【问题讨论】:

这可能是 OpenCV 代码中的断言失败。我不使用 VS,但如果您可以使用它向您显示与异常相关的消息,这将帮助您识别问题。 @SSteve 我已经按照你的建议做了,我得到了下一条消息:OpenCV Error: Assertion failed ((n & (n - 1)) == 0) in cv::alignSize, file C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\core\include\opencv2/core /utility.hpp,第 347 行 好的,所以您知道调用alignSize 有问题。查看alignSize 的文档,它说n 必须是2 的幂。如果 VS 会为您提供异常堆栈跟踪,您可以找出调用 alignSize 的内容以及为什么它使用不是 2 的幂的东西来执行此操作。或者查看hog.compute 的文档,看看是否要求您传递的参数之一的大小必须是 2 的幂。 谢谢你,你是对的!我使用的窗口大小不是 2 的幂;) 太棒了!我将此作为答案发布。 【参考方案1】:

在收到异常消息后,我们发现调用 alignSize 时断言失败。 alignSize 的文档要求参数是 2 的幂。从那里,我们查看了 hog.compute 的文档,发现它需要的窗口大小是 2 的幂。

【讨论】:

以上是关于KERNELBASE.dll 啥原因的主要内容,如果未能解决你的问题,请参考以下文章

win7出现故障模块kernelbase.dll

kernelbase.dll的重要意义

kernelbase.dll丢失 应用程序打不开

程序运行kernelbase故障

异常 KernelBase.dll

电脑出现kernelbase.dll错误的两种解决方法