时间:2022-08-02 09:19:35 | 栏目:C代码 | 点击:次
1.1 腐蚀跟膨胀是最基本的形态学运算
1.2 腐蚀跟膨胀是对图像的白色的部分(亮光部分)进行操作
1.3 腐蚀是对亮光部分进行腐蚀 拥有比原图更小的亮光部分
1.4 膨胀是对亮光部分进行膨胀 拥有比原图更大的亮光部分
这里有一个误区
假如说在图片上的一个字,很多人都会认为膨胀是将图片上的字进行膨胀放大实则不然
可以看到膨胀是将图片上的亮色区域进行放大,字就会变得更小,结构体够大的情况下,字就会看不见了**
可以看到腐蚀是将图片上的亮色区域进行放小,字就会变得更大。
1.先看膨胀函数的原码,可以到opencv官网进行查看
附链接:https://docs.opencv.org/4.5.5/
这里选择是4.5.5 版本
当我们用dilate 函数时一般情况下使用前三个参数就可以了,后面参数都有其默认值,可以视情况改变
2 接下来了解getStructuringElement函数
3 代码
int main() { Mat img1, img2; img1 = imread("猫.png"); imshow("原图", img1); Mat element = getStructuringElement(MORPH_RECT, Size(7, 7)); dilate(img1, img2, element); imshow("效果图", img2); waitKey(0); }
效果图 :
1.先看腐蚀函数的原码
2 代码
int main() { Mat img1, img2; img1 = imread("猫1.jpg"); imshow("原图", img1); Mat element = getStructuringElement(MORPH_RECT, Size(7, 7)); erode(img1, img2, element); imshow("效果图", img2); waitKey(0); }
3 效果图
4 调整数值的轨迹条
1.先看函数原码
2 代码
Mat img1, img2; int chu = 3; int da = 21; void hui(int, void*); int main() { img1 = imread("猫1.jpg"); namedWindow("原图"); imshow("原图", img1); namedWindow("膨胀"); createTrackbar("结构元尺寸", "膨胀", &chu, da,hui); hui(chu, 0); waitKey(0); } void hui(int, void*) { int s = chu ; Mat elent = getStructuringElement(MORPH_RECT, Size(s, s)); dilate(img1, img2, elent); imshow("膨胀", img2); }
3 效果图