opencv血管分割
使用边缘检测算子对眼底血管进行分割,简单的实现了一下,没有调参,效果也不是很好。
头文件以及图像读取
#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
void on_trackbar(int, void*) {}//后续用作createTrackbar()的参数
int main()
{
Mat img;
img = imread("oct.jpeg");
imshow("img", img);
形态学处理
getStructuringElement()函数介绍
morphologyEx()函数介绍
Mat frame1, ;
Mat element1 = getStructuringElement(MORPH_RECT, Size(10, 10));//构造一个特定大小和形状的结构元素,用于图像形态学处理。
morphologyEx(img, frame1, MORPH_OPEN, element1);//腐蚀膨胀等形态学操作组合
imshow("MORPH_RECT", frame1);
边缘检测
Mat frame2
namedWindow("Trackbar");//创建窗口
int slider1, slider2;
cvtColor(frame1, frame1, COLOR_BGR2GRAY);
createTrackbar("Cmin", "Trackbar", &slider1, 255, on_trackbar);
createTrackbar("Cmax", "Trackbar", &slider2, 255, on_trackbar);
imshow("gray", frame1);
while (1)
{
Mat dst,dst1;
Canny(frame1, frame2, slider1, slider2);//边缘检测
imshow("Trackbar", frame2);
waitKey(30);
}