Opencv实现击中击不中
《数字图像处理与机器视觉——Visual C++与Matlab实现》P289公式8-7明显错误,但是后面的图是正确的。
《数字图像处理与机器视觉》 该书下载地址:http://pan.baidu.com/share/link?shareid=3551301329&uk=1610854122
详细知识可以看击中击不中,里面的图示跟书本中介绍的差不多。
另外书本中介绍:背景的宽度选择会影响最后的计算结果,以致最终的计算结果是空集。
【Opencv实现击中击不中】
文章图片
Mat input_image = src;
Mat Kernel_S1 = imread("Kernel_3.bmp");
//核-数字3
cvtColor(Kernel_S1, Kernel_S1, CV_RGB2GRAY);
int threhold = 180;
threshold(input_image, input_image, threhold, 255, CV_THRESH_BINARY);
threshold(Kernel_S1, Kernel_S1, threhold, 255, CV_THRESH_BINARY);
imshow("二值化图像", input_image);
Mat Blankimage = Mat::ones(Kernel_S1.rows, Kernel_S1.cols, CV_8UC1);
Mat Kernel_S2 = Blankimage * 255 - Kernel_S1;
imshow("核1", Kernel_S1);
imshow("核2", Kernel_S2);
Mat hit_result, hit_result1, hit_result2;
/// 腐蚀
erode(input_image, hit_result1, Kernel_S1, Point(-1,-1), 1, BORDER_DEFAULT, 0);
imshow("hit_result1", hit_result1);
Mat BigBlankimage = Mat::ones(input_image.rows, input_image.cols, CV_8UC1);
input_image = BigBlankimage * 255 - input_image;
imshow("反置图像", input_image);
/// 腐蚀
erode(input_image, hit_result2, Kernel_S2, Point(-1,-1), 1, BORDER_DEFAULT, 0);
imshow("hit_result2", hit_result2);
hit_result = hit_result1 & hit_result2;
imshow("击中击不中", hit_result);
/// 查找击中点,验证结果
for (int i = 0;
i (i);
for (int j = 0;
j
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Java|Java OpenCV图像处理之SIFT角点检测详解
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
- 人脸识别|【人脸识别系列】| 实现自动化妆
- paddle|动手从头实现LSTM