@_@格式为功能,先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