if (llRealHandle_1 >= 0)
{
const char *img_path = "img1.bmp";
//获取图像原始数据并保存至数组
bool ret1 = NET_DVR_CapturePictureBlock(llRealHandle_1, img_path, 1);
//识别并给出坐标偏差量
//先截取图像有效探测区域
if (ret1 == true)
{
Mat img_temp = imread(img_path, IMREAD_UNCHANGED);
//………………
Mat img_act = img_temp(rect);
//识别并画出偏移结果
Mat img_trans;
cvtColor(img_act, img_trans, CV_BGR2GRAY);
threshold(img_trans, img_trans, 150, threshold_value, CV_THRESH_OTSU);
//Mat element_close = getStructuringElement(MORPH_RECT, Size(3, 3));
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat open;
//顶帽操作
//morphologyEx(img_trans, close, MORPH_CLOSE, element_close);
morphologyEx(img_trans, open, MORPH_OPEN, element);
point1=Draw_Point(open, IDC_STATIC_PIC);
//画背景坐标,PIC1
Draw_Background(IDC_STATIC_PIC);
}
}
为什么这个
Mat img_act = img_temp(rect);,去掉了(rect),Mat img_act = img_temp;就能识别