这个问题可能看起来很模糊,但坦率地说,这就是我所有的,我也无法调试这个问题。
我正在使用Linux Mint并且现在使用OpenCV很长一段时间了。一切都很好,直到几个星期前。现在,当我尝试进行一些基本的转换,比如转置或cvtColor时,会弹出一个分段错误。我真的不知道何时或如何开始发生。这是最小的python脚本,它返回错误:
import cv2
im1 = cv2.imread("test.png", cv2.IMREAD_UNCHANGED)
im2 = cv2.cvtColor(im1, cv2.COLOR_RGBA2BGR)
我在C ++中也做了同样的事情,以防万一:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
cv::Mat im1, im2;
im1 = cv::imread("test.png", cv::IMREAD_UNCHANGED);
cv::cvtColor(im1, im2, cv::COLOR_RGBA2BGR);
return 0;
}
请注意我正在使用COLOR_RGBA2BGR,因为正在考虑的test.png文件确实有alpha通道。
当我尝试transpose()时也会发生相同的分段错误。这是我在某个时候写过的另一个程序。同一个程序在另一台机器上完美运行。我一直认为这个错误可能与图像大小不匹配有关,但不幸的是,它不是。
我不确定其他函数会返回此错误。我已经卸载了OpenCV,从源代码构建,再次安装,但仍然存在错误。我觉得唯一的选择就是全新安装操作系统,但是非常感谢您调试此问题的任何形式的帮助。
答案 0 :(得分:0)
这可能与您的操作系统,python和C ++无关。我建议使用gdb
追溯发生段错误的位置;这应该指向正确的方向。