OpenCV 为何python与c++效果如此大差异

博主在尝试使用OpenCV进行图像处理时,发现C++代码与Python代码在将图片转换为二值图时得到的效果存在显著差异。在C++中,使用`adaptiveThreshold`函数后,图片二值化效果不理想,而在Python中,同样的函数应用后,图片二值化效果符合预期。问题可能源于参数传递或API调用的差异。
摘要由CSDN通过智能技术生成

本人初学opencv在网上找到的例子,读取图片然后转成二值图。

本地安装的openCV4.5.5 

原图如下

 

c++代码如下:

_img = "xxxxx"
Mat src, bw, horizontal, vertical;

char* filename = (char*)_img.c_str();
src = imread(filename, IMREAD_GRAYSCALE);
if (src.empty()) 
{
	return; 
}
imshow("src", src);

adaptiveThreshold(~src, bw, 255, cv::ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);    
imshow('bw', bw);

效果截图

 而翻译成python代码如下:

_img = 'xxxxx'
src = cv2.imread(_img,cv2.IMREAD_GRAYSCALE)
if src is None:
    print('图片读取失败')
cv2.imshow("1 src",src)
# 自适应阈值
bw = cv2.adaptiveThreshold(src,255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 15, -2)
cv2.imshow('bw', bw)

效果如图:

 请高手指点,为何出现如此大差异。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值