opencv 技巧性记录

关于坐标(行列)的问题

定义:行-----row/height,列------col/width;

  1. 新建图像:cv::Mat::zeros(row, col);
  2. 获取像素:image.atcv::Vec3f(row,col)[0];
  3. size的使用:cv::Size(col, row);
  4. rect的使用:cv::Rect( x, y, col, row);
  5. python版本的shape:hwc

resize的使用

  1. C++版本
cv::resize(src, dst, cv::Size(resize_width, resize_height), (0, 0), (0, 0), cv::INTER_LINEAR);

resize(a, dst, Size(2, 2), INTER_NEAREST);
resize(a, dst, Size(0, 0), 2.0, 2.0, INTER_NEAREST);

INTER_NEAREST - 最近邻插值
INTER_LINEAR - 线性插值(默认)
INTER_AREA - 区域插值
INTER_CUBIC - 三次样条插值
INTER_LANCZOS4 - Lanczos插值
2. python版本

img_test2 = cv2.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)
img_test2 = cv2.resize(img, (resize_width, resize_height), interpolation=cv2.INTER_NEAREST)
  1. 注意点
    在使用scale和使用size的方式,即使他们resize的目标尺寸是一致的,但是两个方式进行resize的结果并不会一样。会有一些细微的差距。

标题记录一个google出的快速特征匹配算法

GMS-Feature-Matcher
http://openaccess.thecvf.com/content_cvpr_2017/papers/Bian_GMS_Grid-based_Motion_CVPR_2017_paper.pdf
https://github.com/JiawangBian/GMS-Feature-Matcher

图像合并

	cv::Mat image_temp = pad_image(Rect(0, 0, image.cols, image.rows));
	image.copyTo(image_temp);

常用函数

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = image.transpose(2, 0, 1)

opencv python读取中文字符路径问题

import cv2
import numpy as np
def cv_imread(file_path):
    cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)
    return cv_img

opencv 2.X版本和3.X版本出现读取图像旋转的问题

opencv的cvtColor问题

cv::cvtColor(image, image_gray, CV_RGB2GRAY, 0);
cv::cvtColor(image, image_gray, cv::COLOR_BGR2GRAY, 0);

两个版本的cvtColor结果不是一样的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值