关于图像的简易连通(三)
此篇文章是改动了前两部当中的一些问题后的改进部分
下面为前两部
1.线的改动
int width, height;
Mat src_input = imread(inputImage, IMREAD_COLOR);
width = src_input.size().width;
height = src_input.size().height;
int mid;
mid = ((width + height) / 2)/35;
a = mid;
Mat img = imread(inputimage, IMREAD_COLOR);
Vec2i start_dian = edge_pixel[all_kuai_1][all_dian_1];
Vec2i end_dian = edge_pixel[all_kuai_2][all_dian_2];
Point sd(start_dian[1], start_dian[0]), ed(end_dian[1], end_dian[0]);
line(img, sd, ed, Scalar(255, 255, 255), a);
imwrite(outputimage, img);
while (true) {
……
……
……
}
在连接过程中,若是对所有图片都用相同的像素连接,会产生线与图像大小不匹配的现象,所以进行了一些调整
此处的连接仅为一次 还需要根据块数多少进行多次
测试发现 1/35视觉效果较好
2.析构函数
析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。//转自百度百科
经试验,该过程需要将类中加入析构函数才可运行。
3.相对地址与绝对地址
1.绝对地址
绝对地址指文件在电脑中的绝对路径加盘符,比如
namedWindow("【display】");
Mat src;
src = imread("F:/HTML/images/1.jpg");
//cvtColor(src, src, COLOR_RGB2GRAY);
setMouseCallback("【display】", on_mouse, &src);
while (1)
{
imshow("【display】", src);
waitKey(40);
}
此处的(F:/HTML/images/1.jpg)即图片的绝对地址 在电脑中的绝对位置 F盘下HTML文件下image文件下的1.jpg图片文件
绝对地址在使用过程中可能会出现一些问题 所有有时使用相对地址
2.相对地址
不加盘符相对于程序所在位置的地址
namedWindow("【display】");
Mat src;
src = imread("./data/5.png");
//cvtColor(src, src, COLOR_RGB2GRAY);
setMouseCallback("【display】", on_mouse, &src);
while (1)
{
imshow("【display】", src);
waitKey(40);
}
以下为建立路径所使用的几个特殊符号,及其所代表的意义。
./ :代表目前所在的目录。
../ :代表上一层目录。
以 / 开头:代表根目录。
相对地址更便于移动整个文件夹。