最近邻插值实现:图像任意尺寸变换
来源:互联网 发布:八大网络虚拟人物图片 编辑:程序博客网 时间:2024/05/16 05:37
#<opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv;using namespace std;// 实现最近邻插值图像缩放cv::Mat nNeighbourInterpolation(cv::Mat srcImage){ // 判断输入有效性CV_Assert(srcImage.data != NULL); int rows = srcImage.rows;int cols = srcImage.cols;// 构建目标图像cv::Mat dstImage = cv::Mat(cv::Size(2300, 480), srcImage.type(), cv::Scalar::all(0));int dstRows = dstImage.rows;int dstCols = dstImage.cols;// 坐标转换 求取缩放倍数float cx = (float)cols / dstCols;float ry = (float)rows / dstRows; std::cout << "cx: " << cx << "ry:" << ry << std::endl;// 遍历图像完成缩放操作 for(int i = 0 ; i < dstCols; i++) { // 取整获取目标图像在源图像对应坐标 int ix = cvFloor(i * cx); for(int j = 0; j < dstRows; j++) { int jy = cvFloor(j * ry); // 边界处理 防止指针越界 if(ix > cols - 1) ix = cols - 1; if(jy > rows - 1) jy = rows - 1; // 映射矩阵 dstImage.at<cv::Vec3b>(j, i) = srcImage.at<cv::Vec3b>(jy, ix); } } return dstImage;}int main(){ // 图像源获取及验证 cv::Mat srcImage = cv::imread("2.jpg"); if( !srcImage.data ) return -1; // 最近邻插值缩放操作cv::Mat dstImage = nNeighbourInterpolation(srcImage); cv::imshow("srcImage", srcImage); cv::imshow("dstImage", dstImage); cv::waitKey(0);return 0;}
0 0
- 最近邻插值实现:图像任意尺寸变换
- 图像缩放之最近邻插值
- 图像缩放—最近邻插值
- 图像缩放之最近邻插值
- 图像缩放--最近邻插值
- 图像的插值算法之最近邻插值
- python 图像插值 最近邻、双线性、双三次
- 最近邻插值、双线性插值理论,通过仿射变换使用插值算法
- CImage实现双缓冲&最近邻插值
- 图像缩放插值算法以及matlab简单实现(最近邻法、双线性插值法、三次卷积法)
- 图像缩放算法及速度优化——(一)最近邻插值
- 图像缩放算法及速度优化——(一)最近邻插值
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- 图像缩放算法及速度优化——(一)最近邻插值
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- 图像缩放算法及速度优化——(一)最近邻插值
- 图像缩放--OpenCV cvResize函数--最近邻插值---双线性插值--基本原理
- [计算机网络笔记]第四部分——网络层 选路协议 因特网的选路协议
- 计算图像波峰点
- 储存过程
- C语言基础-前言
- POJ 1789 Truck History
- 最近邻插值实现:图像任意尺寸变换
- [事件处理] js实现的文本框内容发生改变立马触发事件简单介绍
- LeetCode Find All Numbers Disappeared in an Array
- 图像掩码操作的两种实现
- 图像傅里叶变换
- 【C++心路历程17】Jam的计数法 人为定序法
- SwipeDelMenuLayout
- 图像添加椒盐噪声
- 计算数字k在0到n中的出现的次数,k可能是0~9的一个值