-
环境配置 :OpenCV在xCode中的安装与环境配置
-
处理效果
-
函数解析(
copyMakeBorder
)void copyMakeBorder(InputArray src, // 原图 OutputArray dst, // 处理结果 int top, // 上边界高 int bottom, // 下边界高 int left, // 左边界宽度 int right, // 右边界宽度 int borderType, // 边界类型 const Scalar& value = Scalar() ); // 填充边界像素
-
源码
-
源码片段
需要用到的变量声明
Mat src_CMB, dst_CMB; // 像素矩阵声明
int top, bottom, left, right; // 边距声明
int borderType; // 边界类型
Scalar value; // 边界填充颜色
RNG rng(12345); // 随机发生器
获取图像
UIImage *img = [UIImage imageNamed:@"6_S"];
UIImageToMat(img, src_CMB);
初始化参数
/// 初始化输入参数
top = (int)(0.3 * src_CMB.rows); // 上
bottom = (int)(0.3 * src_CMB.rows); // 下
left = (int)(0.3 * src_CMB.cols); // 左
right = (int)(0.3 * src_CMB.cols); // 右borderType = BORDER_CONSTANT; // 赋值图像类型(可common+左键查看API) value = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)); // 随机产生填充颜色
载入边框
copyMakeBorder(src_CMB, dst_CMB, top, bottom, left, right, borderType, value);
UIImage *imge = MatToUIImage(dst_CMB); // 转换成UIImage对象
创建了一个定时器,实现边框颜色的自动调整
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer:) userInfo:nil repeats:YES];
[timer fire];
NSTimer Action
- (void)timer:(NSTimer *)timer {
// 计算颜色
value = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
// 加入边框
copyMakeBorder(src_CMB, dst_CMB, top, bottom, left, right, borderType, value);
_imageView.image = MatToUIImage(dst_CMB);
} -
效果展示