opencv实现图片裁剪和缩放

2023-10-31

1. 格式转换 yuv2rgb

#include <iostream>
#include <fstream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

#define IMAGE_LEN 622080
#define IMAGE_WIDTH 720
#define IMAGE_HEIGHT 576

int main()
{
        ifstream fd_yuv("in.yuv");
        //yuv Mat mem
        cv::Mat yuv_img(IMAGE_HEIGHT*1.5, IMAGE_WIDTH, CV_8UC1);

        //read to Mat
        fd_yuv.read((char *)yuv_img.data, IMAGE_LEN);

        //cv jpg 2 Mat
        cv::Mat jpg_img;
        cv::cvtColor(yuv_img, jpg_img, CV_YUV2RGB_NV12);
        imwrite("out.jpg", jpg_img);

        return 0;
}

2. opencv crop image

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main()
{
	// Read image
	Mat img = imread("test.jpg"); 
	cout << "Width : " << img.size().width << endl;
	cout << "Height: " << img.size().height << endl;
	// Crop image  //起点坐标和终点坐标的矩形
    //img(Range(start_row, end_row), Range(start_col, end_col))
	Mat crop_image = img(Range(80,280), Range(150,330));

	//Save Image
	imwrite("image.jpg", crop_image);
	return 0;
}

3. opencv resize image

/*
src:输入图像
dst:输出图片
dsize:输出图像尺寸,0 则为 dsize=Size(round(fxsrc.cols),round(fysrc,rows))结果
fx:水平轴缩放系数,默认为0
fy:y轴缩放系数,默认为0 
interpolation:插值方法,INTER_LINEAR线性插值,INTER_NN - 最近邻插值,  INTER_LINEAR - 双线性插值..
void resize( InputArray src, 
             OutputArray dst, 
             Size dsize, 
             double fx = 0, 
             double fy = 0,
             int interpolation = INTER_LINEAR );
*/
#include<iostream>
#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>

int main()
{
    
    cv::Mat src = cv::imread("image.jpg", cv::IMREAD_UNCHANGED); 

    float scale = 0.8; //长缩放系数
    float scaleH = 0.8;  //高缩放系数
   
    int width = int(src.cols * scale)
    int height= int(src.rows * scale)
    cv::Mat dst;
   
    /* 缩放图像函数
       src:原图像
       dst:目标图像
       参数3:目标图像的大小
    */
    resize(src, dst, cv::Size(width, height));  

    //cv::imshow("src", src);
    //cv::imshow("dst", dst);
    //cv::waitKey();
        
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv实现图片裁剪和缩放 的相关文章

  • bitblt 在 Windows 10 版本 1703 上失败 (15063.138)

    使用 Visual Studio 2017 vc141 以下代码应该从前游戏窗口获取屏幕截图 但现在它返回黑色和空白图像 唯一的游戏问题 尝试过 OpenGL 和 Vulkan ogl 返回黑色 vulkan 返回白色 在升级到 Windo
  • 如何在Python中使用tcp套接字发送和接收网络摄像头流?

    我正在尝试重新创建这个项目 https github com hamuchiwa AutoRCCar 我拥有的是服务器 我的电脑 和客户端 我的树莓派 我所做的与原始项目不同的是我尝试使用一个简单的网络摄像头而不是树莓派摄像头将图像从我的
  • Opencv matchTemplate 和 np.where():仅保留唯一值

    继带有马里奥硬币的 opencv 教程 https opencv python tutroals readthedocs io en latest py tutorials py imgproc py template matching p
  • Opencv未找到所有轮廓

    我试图找到该图像的轮廓 但是该方法查找轮廓只返回1轮廓 轮廓突出显示image 2 我正在努力寻找all外部轮廓就像这些圆圈 里面有数字 我究竟做错了什么 我可以做什么来实现它 image 1 image 2 以下是我的代码的相关部分 th
  • 我是否必须使用我的数据库训练 Viola-Jones 算法才能获得准确的结果?

    我尝试提取面部数据库的面部特征 但我认识到 Viola Jones 算法在两种情况下效果不佳 当我尝试单独检测眼睛时 当我尝试检测嘴巴时 运作不佳 检测图像的不同部分 例如眼睛或嘴巴 或者有时会检测到其中几个 这是不可能的情况 我使用的图像
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 如何使用 Python 将我的 GoPro Hero 4 相机直播连接到 openCV?

    我在尝试从我的新 GoPro Hero 4 相机捕获实时流并使用 openCV 对其进行一些图像处理时遇到麻烦 这是我的试用 创建的窗口上没有显示任何内容 import cv2 import argparse import time imp
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • opencv 2.3.* 读取不工作

    我无法让 imread 工作 与这个人有同样的问题 OpenCV imwrite 2 2 在 Windows 7 上导致异常 并显示消息 OpenCV 错误 未指定错误 无法找到指定扩展名的编写器 https stackoverflow c
  • 当我将鼠标移到 Mat 关键字上时,Visual Studio 2017 冻结(OpenCv 3.4.1)

    我想在 Visual Studio 2017 中开发 openCv 项目 我下载了 opencv 预构建库并进行了必要的设置 那是 1 我添加了系统路径 build x64 vc14 bin 2 在 Visual Studio 中的项目属性
  • 使用 ffmpeg 或 OpenCV 处理原始图像

    看完之后维基百科页面 http en wikipedia org wiki Raw image format原始图像格式 是任何图像的数字负片 为了查看或打印 相机图像传感器的输出具有 进行处理 即转换为照片渲染 场景 然后以标准光栅图形格
  • OpenCV 2.3 与 VS 2008 - 鼠标事件

    强制性 我是新手 有一份涉及编程的工作 并且我一边工作一边自学 不用说 作为一名老师 我经常犯彻底的错误 我现在所处的位置 我创建了 Graph 类 它 令人惊讶的是 制作了图表 但现在我想通过单击鼠标来修改图形 但我似乎无法让鼠标处理程序
  • 如何使用 python、openCV 计算图像中的行数

    我想数纸张 所以我正在考虑使用线条检测 我尝试过一些方法 例如Canny HoughLines and FLD 但我只得到处理过的照片 我不知道如何计算 有一些小线段就是我们想要的线 我用过len lines or len contours
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • OpenCV 错误:connectedComponents_sub1 中断言失败 (L.channels() == 1 && I.channels() == 1) [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在 OpenCV python 中遇到以下错误 并用 google 搜索了很多 但无法解决 如果有人能为我提供一些线索
  • 使用 OpenCV 改进特征点匹配

    我想匹配立体图像中的特征点 我已经用不同的算法找到并提取了特征点 现在我需要一个良好的匹配 在本例中 我使用 FAST 算法进行检测和提取 BruteForceMatcher用于匹配特征点 匹配代码 vector lt vector
  • 如何确定与视频中物体的距离?

    我有一个从行驶中的车辆前面录制的视频文件 我将使用 OpenCV 进行对象检测和识别 但我停留在一方面 如何确定距已识别物体的距离 我可以知道我当前的速度和现实世界的 GPS 位置 但仅此而已 我无法对我正在跟踪的对象做出任何假设 我计划用
  • 从包含带边框的表格的图像中提取表格结构

    我正在尝试提取下表中的单元格位置 应用自适应阈值处理后 我能够获得细胞位置周围的轮廓 并且 HoughLines 获得垂直和水平结构元素 这是我的代码 img cv2 imread os path join img path file im

随机推荐

  • Unity WebGL Calls Rust Wasm

    Unity WebGL Calls Rust Wasm Jin Qing s Column May 2023 Reference https zenn dev ruccho articles 261136f7bdb003 In this a
  • 【通信原理】数字基带传输的线路码型

    数字基带传输的线路码型 简单介绍数字基带传输的线路码型的信号波形的特点 以及生成方法 注意观察频谱 文末附Matlab代码 以下包括双极性NRZ 单极型NRZ 双极型RZ 单极型RZ 差分码 曼切斯特码 数字双相码 密勒码 CMI码 AMI
  • STM32+二氧化碳传感器(FS00301)

    配置串口4 uart c u8 USART4 RX BUF USART REC LEN 接收缓冲 最大USART REC LEN个字节 u16 USART4 RX STA 0 接收状态标记 void uart4 init u32 bound
  • Istio Java SDK API - 资源访问-VirtualService/Gateway/DestinationRule/ServiceEntry

    环境 参考上一篇文章 Java如何连接Istio 参考上一篇文章 访问Isito资源 VirtualService Gateway DestinationRule ServiceEntry 项目源码 package com you micr
  • QML控件类型:Tumbler

    一 描述 Tumbler 用于通过旋转轮子来选择一个值 Tumbler model 10 API 类似于 ListView 和 PathView 等视图的 API 可以设置模型和委托 并且 count 和 currentItem 属性提供对
  • html登录页面设计

    html登录页面设计实训 html和CSS概述 1 html HTML 是一种标记语言 用于定义网页的结构和内容 包括段落 标题 列表 链接等等 它使用标签来标识不同的内容 并且这些标签可以用于嵌套 2 CSS CSS 是一种样式表语言 用
  • R语言中 attach()与detach(),及with()的使用

    attach what pos 2L name deparse substitute what backtick FALSE warn conflicts TRUE 1 attach 是对what添加路径索引 避免重复输入what名称 参数
  • 数据分析利器Python——列表、元组和字典

    文章目录 目录 文章目录 前言 一 列表和元组 1 创建列表和元组 2 列表和元组的通用用法 2 1 通过索引使用元素 2 2 子序列 2 3 加法 2 4 乘法 2 5 in运算符 2 6 长度 最大值和最小值 2 7 序列封包和序列解包
  • hdu1253 胜利大逃亡(三维bfs索搜)

    http acm hdu edu cn showproblem php pid 1253 第一次做做三维的 思路跟二维的没有区别 这道题目第一次出现Memory Limit Exceeded 这种问题 找了很长时间才发现应该是先判断在存入
  • Java8中处理日期和时间的常用API

    场景 java8中引入了一个新包java time 包含了多数会用到的核心类 注 博客 https blog csdn net badao liumang qizhi 关注公众号 霸道的程序猿 获取编程相关电子书 教程推送与免费下载 实现
  • Modbus ASCII LRC生成

    Modbus ASCII的报文生成顺序为 1 生成PDU 2 生成LRC校验码 将LRC附加到PDU后面 3 将2中的数组转换成HEX格式的文本 4 在HEX格式文本的0位置插入冒号 在HEX格式文本的后面附加Windows换行符 生成LR
  • 什么是Kubernetes?

    刚刚进学校实验室 第一次开会导师和小组同学说了n次Kubernetes 从来没听过 一脸懵逼 Kubernetes也有很多人把它叫K8S 原文链接 http omerio com 2015 12 18 learn the kubernete
  • 双指针详解

    1 定义 顾名思义 双指针即用两个不同速度或不同方向的指针对数组或对象进行访问 通过两个不同指针的碰撞从而达到特定的目的 2 解决问题 在时间或空间条件有限的情况下使用单向遍历需要消耗大量的时间或者根本无法解决问题 这时候就需要我们使用双指
  • 使用IDEA打开eclipse项目

    文章目录 点击左上角的File New Project from Existing Sources 选择到要打开的项目路劲 选择好后点击OK 先勾选 Import project from external model 后选择Eclipse
  • python如何调用参数配置文件_如何使用Python3实现json作为配置文件?

    当脚本重复使用时候 我们需要不断的去更新一些参数 这样使得时间浪费很多 效率也不高 这该怎么办呢 小编在遇到同样问题时 发现了一个可以解决的方式 那就是利用json 大家有需求的可以来看下哦 相信大部分人遇到这个问题 最先尝试的是 py文件
  • Alist简单使用指南

    一 Alist 简介 一款支持多种存储的目录文件列表程序 支持 web 浏览与 webdav 后端基于gin 前端使用react 下面使用 docker和caddy 主要用来支持https 来部署 效果 二 docker部署 配置docke
  • Nginx转发超简单实现

    使用场景 用Nginx做转发 实现更好的服务器管理 此处实现多域名转发 假设服务器分配 客户访问机器IP 192 168 137 70 Nginx接收访问请求 并转发到49服务器 真实服务机器IP 192 168 137 49 IIS或者A
  • push c语言什么作用,“c语言”中,“pop函数”和“push函数”的作用分别是什么?...

    这个算是数据结构的内容讲解的是一个叫做栈类型的数据结构 这个数据结构的特点就是后进先出 最后放进去的数据最先拿出来 pop函数就是拿出数据的操作 push是放入是数据的操作 内容拓展 pop函数呵push函数的使用 include incl
  • 利用fgets实现行数读取

    首先在shell下man fgets include
  • opencv实现图片裁剪和缩放

    1 格式转换 yuv2rgb include