资讯详情

opencv的迁移,从python转C++的代码片段[持续更新]

@_@格式为功能,先python,再c 。

1.打开图片文件

打开参数0为灰度,1为3通道,2为原通道和深度。例如,打开灰度。

path1 = 'd:/logs/1/111.png' cv2.imread(path1,0)
char imageName[] = "d:/logs/1/111.png"; cv::Mat M = imread(imageName, 0);   

2.图片最大最小值

打开图片通道。计算通道的最大值和最小值。

max_pixel = mat1.max() min_pixel = mat1.min()
double mx, mn; Point pmx, pmn; minMaxLoc(mat1, &mn, &mx, &pmn, &pmx);  //mat1.如果输入数组是图像,则需要单通道图像。 //mn最小值,mx最大值,pmn最小值位置,pmx最大值位置 

3、图片剪裁

定义矩形框 xmin xmax 上下ymin ymax

mat2 = mat1[ymin:ymax,xmin:xmax]
cv::Mat mat2= mat1(Range(ymin, ymax), Range(xmin, xmax)).clone(); //也可以不加clone

4.膨胀腐蚀孪生操作

膨胀腐蚀操作一般针对单通道,可以使用mat1转为8UC1[8位 输入单通道

iker = 15 kernel_dilate = cv2.getStructuringElement(cv2.MORPH_RECT,(iker,iker)) dst = cv2.dilate(mat1,kernel_dilate)  iker = 15 kernel_erode = cv2.getStructuringElement(cv2.MORPH_RECT,(iker,iker)) det = cv2.erode(det, kernel_erode)
int ik = 15; cv::Mat dst;  cv::Mat kernel_dilate = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(ik, ik)); cv::dilate(mat1, dst, kernel_dilate);  ik=15; cv::Mat kernel_erode = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(ik, ik)); cv::erode(dst, dst, kernel_erode);

-M

标签: mn35光电传感器对射型

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台