项目需要,提取出把所有目标物体框进去的最大矩阵边框线的ROI。因为我的照片背景单一,所以可以利用像素点的循环遍历找到最大外轮廓边框。方法很蠢,满足我的需求就行,哈哈
#include <iostream>
#include <vector>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[]) {
Mat image = imread("test5.jpg", 1);
resize(image, image, Size(image.cols / 4, image.rows / 4));
namedWindow("input");
imshow("input", image);
// 灰度化
Mat gray;
cv::cvtColor(image, gray, CV_BGR2GRAY);//彩色图像灰度化
namedWindow("gray");
imshow("gray", gray);
// 进行二值化处理
cv::Mat binary;
// 用cv::threshold函数创建一个二值图像。常规阈值化模型(CV_THRESH_BINARY)下,
// 所有大于指定阈值的像素赋值为预定的最大值(参数4),将其他像素赋值为0
cv::threshold(gray, binary, // 输入/输出图像
80, // 阈值(必须<256)
255, // 最大值
CV_THRESH_BINARY); // 阈值化模式。
namedWindow("binary");
imshow("binary", binary);
#if 1
// 遍历每个像素点,找到上下左右最边缘点
int n1 = binary.rows;


1万+

被折叠的 条评论
为什么被折叠?



