图像
文章平均质量分 80
EmbededCoder
C, Python, C++, Qt, MCU, RTOS, ARM Cortex-M, Linux
展开
-
ubuntu安装opencv与卸载
安装ubuntu下C++接口的opencv1.安装准备:1.1安装cmakesudo apt-get install cmake1.2依赖环境sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-devsudo apt-get install pkg-config1.3下载opencv下载地址:转载 2022-01-10 14:37:44 · 667 阅读 · 0 评论 -
YUV444,YUV420P,YUV420SP,YUV422P,YUV422SP,NV12,NV21,NV16,NV61等格式区分与存储简介
一、基础知识:概述YUV是顏色編碼方式,常用於視頻及圖像處理中。其中的YUV是三個分量。“Y”表示明亮度(Luminance或Luma),也就是灰度值。“U”和“V” 表示的是彩色信息,分別爲色度和濃度(Chrominance和Chroma)。由於相鄰的兩個像素,數據差異不大,所以,丟棄相鄰像素的部分數據對於整體影響不大。同時,丟棄數據,還節省了空間便於存儲。人對亮度比較敏感,而對色彩不怎麼敏感。所以,每個像素的亮度Y數據是絕對不動的,而色差數據UV可以進行丟棄。沒有UV信息,一樣可以顯示完整的转载 2021-08-12 12:06:27 · 8718 阅读 · 0 评论 -
Camera 图像处理原理分析- 亮度及曝光控制
1.1亮度感应及曝光1.1.1感光宽容度从最明亮到最黑暗,假设人眼能够看到一定的范围,那么胶片(或CCD等电子感光器件)所能表现的远比人眼看到的范围小的多,而这个有限的范围就是感光宽容度。人眼的感光宽容度比胶片要高很多,而胶片的感光宽容度要比数码相机的ccd高出很多!了解这个概念之后,我们就不难了解,为什么在逆光的条件下,人眼能看清背光的建筑物以及耀眼的天空云彩。而一旦拍摄出来,要么就是云彩颜色绚烂而建筑物变成了黑糊糊的剪影,要么就是建筑物色彩细节清楚而原本美...转载 2021-07-28 11:42:06 · 1981 阅读 · 0 评论 -
YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)
YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像转载 2021-07-21 15:56:34 · 1320 阅读 · 0 评论 -
ncnn::Mat cv::Mat
cv::Mat &img_inncnn::Mat ncnn_img = ncnn::Mat::from_pixels(img_in.data, ncnn::Mat::PIXEL_BGR, img_in.cols, img_in.rows);ncnn中的数据是float类型.imageDate的类型是CV_8UC3, mat.data指定的类型是char *型, 故imageDate可以用下标[]直接索引.ncnn中数据的排列格式为(channel, h, w), cv::Mat原创 2021-07-21 09:45:00 · 1373 阅读 · 0 评论 -
opencv取图像一部分,取图像局部,图像局部互换
取图像局部保存成一个图像,或者将图像局部和另一个图像互换应用比较广。主要用到的函数是rect1.取图像局部保存Rect rectL(0, 0, 15,20);Mat img_now = img(rectL);取图像img的左上角,宽15像素,高20像素的图像,生成新图像img_nowRect的定义Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);2.图像局部互换声明一下,我的方法不是最优方法,但是能用我们想把一副图像的中间部位保留,.转载 2021-07-21 09:39:20 · 2984 阅读 · 0 评论 -
PGM格式图像详解
本文转自这里NET framework框架类库中的Image类和Bitmap类提供了常用图像格式的解析读取和存储,这些常用格式包括BMP,JEPG,GIF,PNG,EXIF,TIFF。但是可惜的是不支持PGM格式,但是只要知道了PGM格式的文件的组织结构,相信要解析他也不是难事了。 PGM图像详解 PGM 是便携式灰度图像格式(portable graymap file format),在黑白超声图像系统中经常使用PGM格式的图像。文件的后缀名为”.pgm”,PGM格式图像格式分为两类:P2和P5转载 2021-07-15 17:04:10 · 3651 阅读 · 0 评论 -
基本JPEG(Baseline JPEG)和渐进JPEG(Progressive JPEG)
本文永久链接一、 JPEG介绍JPEG 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。1.1. JPEG不同场景的解释:作为委员会:是Joint Photographic Experts Group(联合图像专家小组)的缩写; 作为压缩标准:JPEG是联合图像专家小组制定的图像压缩标准(见1.3); 作为文..转载 2020-07-31 13:30:55 · 1733 阅读 · 1 评论 -
使OpenCV程序脱离本地OpenCV环境到其它电脑上运行
前言一般在编写图像处理软件的时候会用到OpenCV,而且在OpenCV程序代码调试完成之后就需要拿到别的电脑上去演示。由于演示用的电脑没有与编写代码机器一样的OpenCV环境就会造成出现这样的错误这样的原因就是本有将OpenCV需要的DLL集合和程序当中。一般来讲解决这个问题有两种解决方案1. 动态链接opencv,即把相应的dll拷贝到exe所在目录,然后一起拿到目标电脑上去运行...原创 2019-09-17 20:53:43 · 874 阅读 · 0 评论 -
OpenCV探索之路(十八):使用imwrite调整保存的图片质量
近日在用opencv做一些图像处理的操作时,需要对一些高分辨率的图像进行保存。比如,在操作一个容量为230M的图像后,并对该图像保存为JPG格式后,发现图像容量变为80M了!针对这个问题,忙了大半天,到处翻阅资料,终于知道为什么了。先举个例子说明自己遇到的问题,为了看出效果,我特意用了一个高分辨率的图片做实验。比如我有如下的一个233M的图片经过下面的程序读进内存,再次保存后,图片容量...转载 2019-09-17 17:29:14 · 4078 阅读 · 0 评论 -
学习OpenCV2——Mat之通道的理解
本文详细介绍了opencv中涉及通道的知识,包括图像类型转换,通道合成分解,图像的显示。1. 知识点tips1: 一个图像的通道数是N,就表明每个像素点处有N个数,一个a×b的N通道图像,其图像矩阵实际上是b行N×a列的数字矩阵。OpenCV中图像的通道可以是1、2、3和4。其中常见的是1通道和3通道,2通道和4通道不常见。1通道的是灰度图。...转载 2019-09-11 16:25:13 · 1773 阅读 · 0 评论 -
namedWindow , destroyWindow(), destroyAllWindows()
void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE);创建一个窗口。imshow直接指定窗口名,可以省去此函数,但如果显示图像之前需要其他窗口操作时,需要调用此函数。winname窗口标识符/窗口名称flags窗口标志位,可为如下几种值WINDOW_NORMAL (CV_WINDOW_...原创 2019-09-11 16:24:25 · 923 阅读 · 0 评论 -
opencv--读取Mat像素点值
Mat src = imread("1.jpg"); int rows = src.rows; int cols = src.cols; for (int i = 0; i < rows; i++) { uchar* d = src.ptr<uchar>(i); //获取第i行的首地址 for (int j =...原创 2019-09-11 16:21:46 · 2745 阅读 · 0 评论 -
图像处理:图像灰度化
灰度图像上每个像素的颜色值又称为灰度,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每一个灰度值统计出具有该灰度值的象素数。 灰度就是没有色彩,RGB色彩分量全部相等。如果是一个二值灰度图象,它的象素值只能为0或1,我们说它的灰度级为2。用个例子来说明吧:一个256级灰度的图象,如果RGB三个量...转载 2019-06-18 16:42:06 · 62928 阅读 · 10 评论 -
图像处理:图像二值化原理
图像的二值化的基本原理图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样...转载 2019-06-18 16:44:54 · 14408 阅读 · 0 评论 -
RGB转灰度的几种算法
这里我用的摄像头是OV2640,这款摄像头的像素是200万。通过对摄像头拍摄图像的进行图像的转化,先把图像的格式转化为RGB565,然后在进行灰度的转化,最后进行二值化处理,设定阈值,进行二值化的处理,通过设置二值化的位数可以提高二值化的精度,使二值化的效果更加清晰,我用的OV2640可以对焦距进行调节,这样的话,可以使拍摄的图像的效果更加完善。大家可以根据自己的摄像头进行设置。我看了飞思卡尔的...转载 2019-07-04 15:05:25 · 14702 阅读 · 0 评论 -
opencv一帧图片改变为rgb格式
#include<opencv2/opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main(){ Mat img=imread("f:/1.jpg"); int height=img.rows; int width=img.cols; ...原创 2019-09-10 14:45:21 · 1074 阅读 · 0 评论 -
opencv读取本地视频
C++#include "opencv2/core.hpp"#include "opencv2/highgui.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/videoio.hpp"using namespace std;using namespace cv;int main(int argc, char **argv...原创 2019-09-10 14:56:58 · 1596 阅读 · 0 评论 -
opencv中mat详细解析
##1、起源OpenCV作为强大的计算机视觉开源库,很大程度上参考了MatLab的实现细节和风格,比如说,在OpenCV2.x 版本以后,越来越多的函数实现了MatLab具有的功能,甚至干脆连函数名都一模一样(如 imread, imshow,imwriter等)。这一做法,不仅拉近了产品开发与学术研究的距离,并极大程度的提高了开发人员的研发效率,不得不说,Intel公司真的是一个伟大的公司。...转载 2019-09-10 15:01:45 · 560 阅读 · 0 评论 -
C++ OpenCV中BGR转RGB
项目中用到的外部库支持的图片为RGB,而opencv读出的图片格式是BGR的,为了省事在网上找了几个转换的代码实际运行的时候都出了问题,于是自己写了一个,用的是指针,代码少效率高:Mat Plate::BGRToRGB(Mat img) { Mat image(img.rows, img.cols, CV_8UC3); for(int i=0; i<img.rows; ...转载 2019-09-10 15:06:10 · 2862 阅读 · 0 评论 -
Opencv图像识别从零到精通(5)-----Mat_ROI、颜色转换、多图显示、保存输出
其实在看到Mat类的时候,感觉总是怎么那么多功能,没办法就是那么头疼,不过功能多,那么用法也就多,相对的会在图像处理中有很大的重要,所以后面不知不觉中就会回去看看他,这里用ROI来进步说一下Mat,看看实例的应用,这样更舒服一些。然后再说一下颜色转化,因为在图像中,我们会看到彩色图像和灰度图像,他们有处理的共同的方法,也有自己的方法,每种类型都有自己的特征,所以在他们之间的转...转载 2019-09-10 15:30:38 · 3311 阅读 · 0 评论 -
opencv改变图像大小cvResize和resize
在实现图像窗口展示的时候,经常出现图像过大或过小而无法有效的展示全图,opencv提供了cvResize()和resize()两个函数进行相应的缩放操作默认图片的坐标1、cvResize:函数原形CVAPI(void) cvResize( const CvArr* src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_L...转载 2019-09-11 13:47:53 · 66986 阅读 · 0 评论 -
opencv图像结构体之间的转换
IplImage, CvMat, Mat之间的转换(1)IplImage * -> MatIplImage * iplimg=cvloadImage("test.jpg",1)Mat Img(iplimg,0); //不进行像素数据copy//Mat Img(iplimg,1);Mat -> IplImageMat imgMat=imr...原创 2019-09-11 13:48:20 · 426 阅读 · 0 评论 -
opencv中cvtcolor()函数用法总结(07)
还是老习惯,分三步走。第一步,功能说明。第二步,结果图显示,第三步,API详解。第四步,代码展示(注释很详细,保证所有有C++基础的人都可以看懂。)第一步,功能说明:cvtcolor()函数是一个颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间转换。也可以转换为灰度图。第二步,结果图显示:我们使用了两种方式转换,下面是不同方式的效果图。图1是原图。图2图3分别是效果图,转换方...转载 2019-09-11 15:24:05 · 15432 阅读 · 2 评论 -
RGB565转RGB888
在arm板上cmos得到的图象格式是RGB565格式,而在opencv上处理的格式是的BGR888。RGB565用两个字节来存一个像素点,其中三个通道分别占5个,6个,5个位。BGR888用三个字节来存一个像素点,每个通道占8个位(即一个字节)。转换时,直接对应通道,用RGB565的值补BGR888的高位。比如RGB565:11100 111001 11111转成BGR88...转载 2019-09-11 16:20:20 · 1322 阅读 · 0 评论 -
计算机标准分辨率
计算机标准 分辨率CGA 320×200 (16:10)QVGA 320×240 (4:3)B&W Macintosh/Macintosh LC 512×384 (4:3)EGA 640×350 (大约 5:3)VGA and MCGA 640×480 (4:3)HGC 720×348 (60:29)MDA 720×350 (72:35)Apple Lisa 720×36...原创 2019-06-18 21:18:28 · 2035 阅读 · 0 评论