opencv之图像搭桥法
来源:互联网 发布:小猪cms源码下载 编辑:程序博客网 时间:2024/04/30 12:37
这里演示的是水平和垂直搭桥:
大致原理为:
s(为白点的个数,并通过s是否为0来标记最初的白点io),当扫描到黑点时,在判断s是否在阈值类,如果在,则将这段白点用直线画黑线,反正不画。
代码如下:
// a4.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <OpenCV245.h>using namespace cv;using namespace std;void graftDot(Mat &image){int Hline = 4;int Lline = 10;/*int Hs = 0;int j0 = 0;*///竖着搭桥/*for (int i = 0; i < image.cols; i++){for (int j = 0; j < image.rows; j++){if ( image.at<uchar>(j, i) == 255 ){if ( Hs == 0){j0 = j;} Hs++;}else{if ( Hs < Hline && Hs > 0){line(image, Point(i, j0), Point(i,j),0); }Hs = 0;j0 =0;}}}*///横着搭桥int Ls = 0;int i0 = 0;for (int j = 0; j < image.rows;++j){uchar* p = image.ptr<uchar>(j);for (int i = 0; i < image.cols; ++i){if (image.at<uchar>(j, i) == 255){if ( Ls == 0 ){i0 = i;}Ls++;}else{if ( Ls < Lline && Ls > 0){line(image, Point(i0, j), Point(i, j), 0);}
Ls = 0;
i0 = 0;}}}//竖着搭桥int Hs = 0;int j0 = 0;for (int i = 0; i < image.cols; i++){for (int j = 0; j < image.rows; j++){if ( image.at<uchar>(j, i) == 255 ){if ( Hs == 0){j0 = j;} Hs++;}else{if ( Hs < Hline && Hs > 0){line(image, Point(i, j0), Point(i,j),0); }Hs = 0;j0 =0;}}}}int _tmain(int argc, _TCHAR* argv[]){Mat src = imread("C:\\Users\\sony\\Desktop\\显著2.png");Mat result;result = src.clone();cvtColor(src, src, CV_RGB2GRAY);Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1,-1));erode(src,src,kernel,Point(-1,-1),1);threshold(src, src, 160, 255, THRESH_BINARY);resize(src, src, Size(400, 400));graftDot(src);//resize(src,src,Size(600, 600));imshow("src",src);waitKey(0);return 0;}
- opencv之图像搭桥法
- opencv之读取图像
- OpenCV之图像锐化
- opencv之图像反转
- opencv之显示图像
- opencv之 图像滤波
- openCV之读取图像
- OpenCv之图像腐蚀
- opencv之图像拼接
- openCV之图像混合
- opencv之图像模糊
- Opencv之图像浮雕
- opencv之图像直方图
- opencv之图像锐化
- OpenCV图像处理篇之图像平滑
- opencv图像处理之图像卷积
- opencv 之图像反色
- OpenCV入门之显示图像
- secureCRT连不上虚拟机上的ubuntu
- LMAX架构
- Eclipse中10个最有用的快捷键组合
- 串口调试
- UVA 10815 Andy's First Dictionary
- opencv之图像搭桥法
- How many zeros and how many digits?
- Object-c 总结之NSArray
- python apply class extend usage
- Factoring Large Numbers
- Eclipse 快捷键
- UVA 10361 Automatic Poetry
- DataReader与DataSet有什么区别?
- Code Refactoring