opencv 如何缩放 YUV420 数据

hhuc2001 2013-11-27 03:51:50
我从文件中读取 一帧 yuv420 的数据,保存到一个数组中,
请问 如何使用opencv 对yuv数据进行缩放?
或者不用opencv 使用其他的函数?
...全文
1612 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
雷霄骅 2013-12-27
  • 打赏
  • 举报
回复
OpenCV的话: YUV->IplImage->缩放->转换回YUV 可参考:YUV转IPLImage(RGB) 或者使用ffmpeg的swscale可以直接实现 可参考:FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
hhuc2001 2013-11-28
  • 打赏
  • 举报
回复
怎么直接resize?我现在只有yuv420的序列,“YYYYYYYYY VV UU”,要缩放以后也是YUV420
fengbingchun 2013-11-27
  • 打赏
  • 举报
回复
直接应用OpenCV的resize函数即可。
hhuc2001 2013-11-27
  • 打赏
  • 举报
回复
必须要转换成 rgb处理?
青松2 2013-11-27
  • 打赏
  • 举报
回复
#define MR(Y,U,V) (Y + (1.403)*(V-128))
#define MG(Y,U,V) (Y - (0.344) * (U-128) - (0.714) * (V-128) ) 
#define MB(Y,U,V) (Y + ((1.773) * (U-128)))
青松2 2013-11-27
  • 打赏
  • 举报
回复
yuv转rgb的函数:
void YUV420_C_RGB( char* pYUV, unsigned char* pRGB, int height, int width)
{
    char* pY = pYUV;
    char* pU = pYUV+height*width;
    char* pV = pU+(height*width/4);


    unsigned char* pBGR = NULL;
    unsigned char R = 0;
    unsigned char G = 0;
    unsigned char B = 0;
    char Y = 0;
    char U = 0;
    char V = 0;
    double tmp = 0;
    for ( int i = 0; i < height; ++i )
    {
        for ( int j = 0; j < width; ++j )
        {
            pBGR = pRGB+ i*width*3+j*3;

            Y = *(pY+i*width+j);
            U = *pU;
            V = *pV;

            //B
            tmp = MB(Y, U, V);
            //B = (tmp > 255) ? 255 : (char)tmp;
            //B = (B<0) ? 0 : B;
			B = (unsigned char)tmp;
            //G
            tmp = MG(Y, U, V);
            //G = (tmp > 255) ? 255 : (char)tmp;
           // G = (G<0) ? 0 : G;
			G = (unsigned char)tmp;
            //R
            tmp = MR(Y, U, V);
            //R = (tmp > 255) ? 255 : (char)tmp;
            //R = (R<0) ? 0 : R;
			R = (unsigned char)tmp;


            *pBGR     = R;            
            *(pBGR+1) = G;        
            *(pBGR+2) = B;
        

            if ( i%2 == 0 && j%2 == 0)
            {
                *pU++;
				//*pV++;
            }
            else
            {
                if ( j%2 == 0 )
                {
                    *pV++ ;
                }
			}
        }
    
    }
}
cvResize
第1章 Java概述、安装及简易教学 14 1-1 Java概述 14 1-2 Java安装 16 1-3 Eclipse安装 18 1-4 GUI设计工具WindowBuilder 18 1-5 在Eclipse开发第一个Java程式 23 1-6 在Eclipse开发第一个Java视窗程式-显示影像 26 1-7 在Eclipse开发视窗程式-slider控制元件 34 1-8 在Eclipse开发视窗程式-按钮控制元件 39 1-9 好用的Eclipse热键 41 第2章 OpenCV概述、安装及设定 42 2-2 关于OpenCV 3.0及3.1 43 2-3 使用Java开发OpenCV的缺点 45 2-4 OpenCV的下载及安装 45 2-5 Eclipse设定OpenCV开发环境 46 2-6 整合Java之Eclipse与OpenCV 49 2-7 开发第一个OpenCV程式 51 2-8 建立矩阵 52 范例2-8-1 建立第一个opencv的矩阵,使用阵列 53 范例2-8-2 建立opencv的Mat矩阵方法2 55 范例2-8-3 方法3以单一元素指定 56 范例2-8-4 方法4全部以同一元素指定 57 范例2-8-5 方法5以个别单一元素指定 58 范例2-8-6 方法6以1维阵列指定建立 59 第3章 OpenCV基础数学计算 60 范例3-1-1 矩阵的线性代数计算1 60 范例3-1-2 矩阵的矩阵线性代数计算2-加减乘除处理 62 范例3-1-3 矩阵的矩阵线性代数计算3 65 范例3-2-1 矩阵的统计方面计算1 68 范例3-2-2矩阵的统计方面计算2 69 范例3-3-1 矩阵其他数学计算 72 第4章 影像基本输出输入处理 78 范例4-1-1 Opencv读取写入练习 79 范例4-1-2 Opencv读取影像并显示至视窗 81 范例4-1-3 Opencv读取影像显示至视窗-版本2 84 范例4-1-4影像储存压缩品质选择 87 范例4-2-1 Opencv使用webcam拍照,并存放置资料匣 89 范例4-2-2 使用webcam拍照明亮版-并存放影像在资料匣 90 范例4-2-3 使用webcam读取动态影像至Java Swing视窗 91 范例4-2-4 使用webcam读取动态影像至Java Swing视窗2 92 范例4-2-5 手动拍照 94 范例4-2-6 使用webcam录制影片档 96 范例4-2-7 使用xuggle录制电脑画面 99 范例4-2-8 使用Opencv API录制影片档案 102 范例4-3-1 Opencv API拨放影片档案,使用Panel 104 范例4-3-2 Opencv API拨放影片档案,不使用Panel 105 范例4-4-1从IPCam读取网路串流影像 107 范例4-4-2从IPCam拍摄照片 108 第5章 影像基本处理 109 范例5-1-1使用ConvertTo调整影像明亮度 109 范例5-1-2使用ConvertTo及GUI元件调整影像明暗度 110 范例5-1-3使用addWeighted及GUI元件调整影像明亮度 111 范例5-1-4改变影像的每1个像素调整影像明亮度 112 范例5-2-1全彩图转灰阶图 113 范例5-3-1影像颜色相反,使用Bitwise_xor 114 范例5-3-2影像颜色相反,使用subtract 115 范例5-3-3影像颜色相反,使用Bitwise_not 116 范例5-4-1模糊处理-使用Gaussian高斯函数及GUI元件 116 范例5-4-2修正5-4-1高斯模糊的异常 117 范例5-4-3模糊处理-使用median函数及GUI元件 118 范例5-4-4模糊处理-使用BoxFilter函数及GUI元件 119 范例5-5-1 Threshold-使用临界值函数及GUI元件 122 范例5-5-2 AdaptiveThreshold-使用自适临界值及GUI元件 128 范例5-6-1 Sharpness锐利化处理 130 范例5-6-2锐利化处理,使用GUI元件 131 范例5-7-1 影像合并/融合处理处理,使用GUI元件 131 范例5-8-1 影像缩放-使用Gaussian高斯金字塔及GUI元件 133 范例5-8-2影像缩放-使用resize使用GUI元件 135 范例5-8-3 影像延展效果-使用resize使用GUI元件 136 范例5-8-4影像缩放-使用getRotationMatrix2D及GUI元件 137 范例5-9-1影像旋转以90度*n为主-使用remap及 GUI元件 138 范例5-9-2影像旋转以90度*n为主-使用Flip及 GUI元件 140 范例5-9-3 影像可任意角度旋转缩放使用 GUI元件 141 范例5-10-1 影像扭曲倾斜处理使用GUI元件 143 范例5-11-1 灰阶影像对比强化处理并GUI显示 147 范例5-11-2 影像强化对比效果,使用均衡化直方图 149 范例5-11-3 RGB彩色强化对比效果,使用均衡化直方图及融合 150 范例5-11-4 YUV彩色强化对比效果,使用均衡化直方图及融合 151 范例5-12-1 影像梦幻沙龙处理使用GUI显示 152 范例5-13-1 影像各式颜色空间转换于GUI显示 154 范例5-14-1 影像堆叠 155 范例5-15-1 影像马赛克处理 157 范例5-16-1 影像添加外框 158 范例5-17-1合并两个影像 160 范例5-17-2合并两个影像,使用不规则形状 161 第6章 使用核矩阵进行影像处理 165 范例6-1-1 Mean filter处理 165 范例6-2-1 Prewitt Filter处理 167 范例6-3-1 Laplacian Filter处理1 170 范例6-3-2 Laplacian Filter处理2 171 范例6-3-3 Laplacian Filter灰阶影像处理 173 范例6-3-4 Laplacian Filter使用核矩阵 173 范例6-4-1 Sobel Filter使用核矩阵 175 范例6-4-2 Sobel Filter处理使用内建API 176 范例6-4-3 Sobel Filter处理使用内建API2 178 范例6-5-1 Frei Chenn Filter处理 180 范例6-6-1 Scharr Filter使用核矩阵 180 范例6-6-2 Scharr使用API 181 范例6-7-1 Robinson Filter处理 182 范例6-8-1 Kirsch Filter处理 184 范例6-9-1 Emboss浮雕处理 186 范例6-10-1 创造自己的filter 187 范例6-11-1 SqrBoxFilter处理 188 第7章 绘图 190 范例7-1-1 画线 190 范例7-2-1 画点 191 范例7-3-1 画圆 191 范例7-4-1 画椭圆形 192 范例7-4-2 椭圆内近似多边形练习 194 范例7-5-1 填补凸多边形练习 195 范例7-6-1 多边形绘图(填满)练习 196 范例7-6-2 多边形填充使用滑鼠练习 197 范例7-7-1中空多边形绘图练习 198 范例7-8-1 输入文字练习 200 范例7-8-2 输入文字使用中文练习 202 范例7-8-3浮水印练习 205 范例7-9-1 矩形练习 206 范例7-9-2 判断A矩形是否有在B矩形内 207 范例7-10-1 综合应用:直方图统计练习 208 范例7-11-1 颜色洪水填充处理练习1 211 范例7-11-2 颜色洪水填充处理练习2 213 范例7-11-3 颜色洪水填充处理3-重拾小朋友填色乐趣. 214 范例7-12-1 综合练习:使用一个最小矩形包含一堆点 215 范例7-13-1 综合练习:使用一个最小矩形包含一堆矩形 216 范例7-14-1 综合练习:使用一个矩形撷取影像区块 218 范例7-14-2综合练习:中空多边形绘制使用滑鼠 220 范例7-14-3综合练习:使用多边形撷取不规则影像区块1 222 范例7-14-4 综合练习:使用多边形撷取不规则影像区块2 227 范例7-14-5 综合练习:使用多边形撷取影像贴至另一影像 228 范例7-15-1箭头练习 232 范例7-16-1 特殊符号练习 233 范例7-17-1 立体浮雕制作 235 第8章 进阶影像处理 241 范例8-1-1 Erosion腐蚀处理练习 241 范例8-2-1 Dilation膨胀处理练习 242 范例8-3-1 其他形态学变换处理练习 244 范例8-4-1 Canny边缘检测处理练习1 246 范例8-4-2 Canny边缘检测处理练习2 248 范例8-5-1 卡通化处理1,整合模糊及Canny 249 范例8-5-2 卡通化处理2 252 范例8-5-3 卡通化及线条Live版 253 范例8-6-1 抠出背景处理练习 254 范例8-7-1聚光灯效果处理练习 256 范例8-9-1 分水岭演算法Watershed处理练习 258 范例8-10-1 油画效果处理练习 261 范例8-11-1 多种色调处理练习 262 范例8-12-1 圆形转矩形处理练习 266 范例8-13-1 LogPolar极座标转换处理 267 第9章 强大相片类处理 270 范例9-1-1 影像修复功能处理练习 270 范例9-2-1 影像减色/脱色/降灰阶处理练习 272 范例9-3-1 消除杂点练习1 273 范例9-3-2 消除杂点练习2 274 范例9-3-3 消除杂点练习3 275 范例9-3-4 消除杂点练习4 276 范例9-4-1 HDR高动态范围成像练习 277 范例9-5-1 Seamless Cloning系列 Color Change练习 285 范例9-6-1 Illumination Change练习 287 范例9-7-1 Texture Flattening水彩化 288 范例9-7-2 水彩的世界-Live版 290 范例9-8-1 Seamless Cloning系列-澄清湖水怪无缝贴图 290 范例9-8-2 Seamless Cloning系列-背景练习 295 范例9-8-3 综合练习:使用多边形撷取无缝贴图实作练习 296 范例9-9-1 Non-Photorealistic Rendering非实感绘制-强化 300 范例9-10-1 非实感绘制系列-模糊影像边缘保留处理 301 范例9-11-1 非实感绘制系列-铅笔处理 302 范例9-12-1 非实感绘制系列-写实风格化 304 范例9-12-2 写实风格化Live版 305 范例9-13-1 具限制性对比度自适应直方图均衡CLAHE 306 范例9-14-1 影像形状自动校正 308 范例9-14-2 影像角度自动校正 311 第10章 检测 314 范例10-1-1 Hough Line霍夫线变换1 314 范例10-1-2 Hough Line霍夫线变换2 317 范例10-1-3线段检测 319 范例10-2-1 Hough Circle霍夫圆变换 321 范例10-2-2霍夫圆变换应用:距离量测使用Cam实作 324 范例10-2-3 综合应用-虚拟画笔Live版1 327 范例10-2-4 虚拟画笔Live版2 330 范例10-3-1 寻找轮廓 332 范例10-3-2 轮廓顺序表示法 334 范例10-4-1 寻找轮廓并且绘出外框矩形1 336 范例10-4-2 寻找轮廓并且绘出外框矩形2 338 范例10-4-3 多点绘出外框矩形1 341 范例10-4-4 多点绘出外框矩形2 342 范例10-4-5 多点绘出外框凸多边形 343 范例10-4-6 绘出多点外框圆形 345 范例10-4-7 绘出多点外框椭圆形 346 范例10-4-8 最近似外框多边形 347 范例10-4-9 绘出多点最适外框三角形 349 范例10-5-1寻找轮廓并且绘出外框圆形 351 范例10-5-2寻找轮廓并且绘出外框椭圆形 352 范例10-5-3寻找轮廓并且绘出外框三角形 354 范例10-6-1判断某点是否在凸边形的轮廓内 356 范例10-7-1计算轮廓的面积与周长 357 范例10-8-1使用匹配模板找出某物 359 范例10-8-2使用非匹配模板找出某物 363 范例10-8-3 修正使用匹配与非匹配模板找出某物 364 范例10-9-1 convexHull凸包处理 367 范例10-10-1 convexityDefects凸包缺陷 369 范例10-11-1颜色区域检测 373 范例10-12-1颜色辨识-反向投影1 377 范例10-12-2颜色辨识-反向投影2 379 范例10-12-3颜色辨识-反向投影3 380 范例10-13-1颜色辨识以RGB为主 381 范例10-13-2颜色辨识,使用HSV彩色空间 382 范例10-13-3影像颜色检测 384 范例10-14-1从webcam读取影像及判断HSV颜色值 385 范例10-14-2读取影像及调整HSV颜色值捕捉物体 387 范例10-14-3计算生锈面积 389 范例10-15-1综合应用,辨识蓝色圆形物 390 范例10-15-2综合应用:辨识蓝色圆形物-增加膨胀以改良 393 范例10-16-1找出肤色Live版 395 范例10-16-2找出肤色Live改善版 396 范例10-17-1手势、手指数目辨识 397 范例10-17-2手势控制相机先比5后比Ya(2指)触发自动拍照 406 范例10-18-1 Xray效果及找到手掌心 407 范例10-18-2找到手掌心 Live版 410 范例10-18-3找到掌心与手指 Live版 411 范例10-19-1 空间矩、中心矩、标准中心矩及Hu不变矩 411 范例10-19-2比较两个形状 416 范例10-19-3比较两个影像,使用直方图比对法 419 范例10-19-4找出某物整合MatchTemplete与compareHist 422 范例10-20-1 找出合适的切线 425 范例10-20-2 众点找出合适的切线 428 范例10-21-1束绳检测是否断裂1 430 范例10-21-2束绳检测是否断裂2 432 范例10-21-3束绳检测是否断裂3 433 范例10-22-1束绳检测是否偏斜1 435 范例10-22-2束绳检测是否偏斜2 437 范例10-22-3束绳检测是否偏斜3 439 范例10-23-1 综合应用:找出趋势图最高点 441 范例10-24-1寻找两个矩形的交叉点 442 范例10-25-1 捕抓萤幕画面 444 范例10-25-2找出应用程式在萤幕的位置-我的Word在那里 446 第11章 特征点检测 450 范例11-1-1 Shi-Tomasi角点检测方法 450 范例11-1-2利用角点检测找出particle-Live版 452 范例11-2-1 Harris-Stephens边缘检测方法 453 范例11-3-1更精确的角点检测 454 范例11-4-1特征点检测计算 457 范例11-5-1利用Features2D二维特征点寻找物体 462 范例11-5-2利用二维特征点SURF+FLANN寻找物体-Live版 468 范例11-5-3利用Features2D寻找近似物体 468 范例11-6-1利用二维特征点及Homography单映射寻找物体 472 范例11-6-2利用二维特征点及单映射寻找物体Live版 476 范例11-6-3利用二维特征点及单映射寻找近似物体 476 范例11-7-1客制化角点检测视窗 477 范例11-8-1寻找出棋盘格 480 范例11-8-2寻找出棋盘格Live版 483 范例11-9-1矫正镜头畸形 483 范例11-9-1利用矫正镜头制造艺术化扭曲影像 487 第12章 运动追踪motion tracking 489 范例12-1-1补捉动静Live版 489 范例12-2-1使用HOG特征进行行人检测 491 范例12-2-2行人检测Live版 494 范例12-3-1 Lucas-Kanade光流 494 范例12-3-2 Farneback光流 499 范例12-4-1使用MOG特征进行行人检测 502 范例12-4-2 MOG特征进行行人检测Live版 504 范例12-4-3使用KNN特征进行行人检测 505 范例12-4-4 KNN特征进行行人检测Live版 506 范例12-5-1使用Meanshift均值偏移寻找物体Live版 507 范例12-6-1使用CamShift人脸追踪Live版 509 范例12-7-1 Kalman Filter滤波,随机乱跑Live版 512 范例12-7-2 Kalman Filter滤波,追踪蓝色圆形Live版 516 范例12-8-1更新运动历史图像Live版 517 第13章 Machine Learning机器学习 523 范例13-1-1人脸辨识 524 范例13-1-2人脸辨识Live版 527 范例13-1-3人脸辨识含眼鼻Live版 527 范例13-1-4人脸眼鼻快速辨识Live版 529 范例13-1-5 整合应用:检测到眼睛自动添加眼镜Live版 531 范例13-1-6检测到眼睛自动添加半透明眼镜Live版 534 范例13-1-7检测行人 535 范例13-1-8检测车辆 537 范例13-1-9 DetectMultiScale3参数测试 538 范例13-1-10计算车流量 540 范例13-1-11 侦测RJ45网路头Live版 542 范例13-2-1 电脑小手写板程式Live版 549 范例13-2-1a手写数字的资料库 552 范例13-2-1b鸢尾花资料库 555 范例13-3-1常态贝叶斯分类器预测鸢尾花数据集 560 范例13-3-2常态贝叶斯分类器-预测手写数字 561 范例13-3-3常态贝叶斯分类器-预测手写数字Live版 563 范例13-4-1决策树Decision Trees预测鸢尾花数据集 565 范例13-4-2决策树-预测手写数字 569 范例13-4-3决策树-预测手写数字Live版 571 范例13-5-1最大期望值EM-预测鸢尾花数据集 572 范例13-5-2最大期望值-预测鸢尾花数据集二元分类 576 范例13-5-3最大期望值-预测鸢尾花数据集3类修改版 578 范例13-5-4最大期望值-预测手写数字 581 范例13-5-5最大期望值-预测手写数字(二元分类) 583 范例13-5-6最大期望值-预测手写数字Live版 586 范例13-6-1 Logistic回归-预测鸢尾花数据集 586 范例13-6-2 Logistic回归-预测手写数字 590 范例13-6-3 Logistic回归-预测手写数字,调整参数 593 范例13-6-4 Logistic回归-预测手写数字Live版 593 范例13-7-1 KNN-预测鸢尾花数据集 594 范例13-7-2 KNN-预测鸢尾花数据集2 597 范例13-7-3 KNN-预测手写数字 600 范例13-7-3 KNN-预测手写数字Live版 602 范例13-7-5 KNN-分类练习 602 范例13-8-1 随机森林-预测鸢尾花数据集 604 范例13-8-2随机森林-预测手写数字 607 范例13-8-3 随机森林-预测手写数字Live版 609 范例13-9-1 Boost分类-预测鸢尾花数据集 609 范例13-9-2 Boost分类-预测鸢尾花数据集2 612 范例13-9-3 Boost-预测手写数字 615 范例13-9-4 Boost-预测手写数字Live版 617 范例13-10-1 类神经网路-初声试啼小练习 618 范例13-10-2 类神经网路-预测鸢尾花数据集 623 范例13-10-3类神经网路-预测手写数字 625 范例13-10-4类神经网路-预测手写数字Live版 627 范例13-11-1 SVM-预测鸢尾花数据集 627 范例13-11-2 SVM预测手写数字 631 范例13-11-3 SVM预测手写数字Live版 633 范例13-11-4 SVM分类练习于2D平面 633 范例13-12-1 Kmean(K均值)简单分类 636 范例13-12-2 Kmean 1维数据分类 640 范例13-12-3 Kmean 2维数据分类 643 范例13-12-4 Kmean 应用于影像处理-减色处理 646 范例13-12-5 Kmean预测分类-鸢尾花数据集 648 范例13-12-6 Kmean预测分类-手写数字数据集 650 范例13-12-7 Kmean预测分类-手写数字Live版 652 范例13-13-1马氏距离 654 范例13-13-2马氏距离使用于-鸢尾花数据集 656 范例13-13-3马氏距离使用于-手写数字数据集 657 范例13-13-4修改马氏距离使用于-手写数字数据集 660 范例13-13-5修改马氏距离使用于-鸢尾花数据集 665 范例13-13-6修改版马氏距离使用于-预测手写数字Live版 666 范例13-14-1主成份分析PCA 671 范例13-14-2鸢尾花数据集使用PCA降维 673 范例13-14-3鸢尾花数据使用PCA降维整合Kmean聚类处理 675 范例13-14-4鸢尾花数据使用PCA降维整合Knn分类处理 678 范例13-14-5手写数字集使用PCA降维整合Kmean聚类处理 680 范例13-14-6 手写数字集使用PCA降维整合KNN及SVM分类 682 范例13-14-7 改善手写数字集使用PCA降维整合KNN及SVM 685 范例13-14-8 改善鸢尾花数据使用PCA降维整合KNN分类 689 范例13-14-9个人人脸辨识整合PCA与SVM计算 690 范例13-14-10个人人脸辨识整合PCA与LibSVM计算 694 范例13-15-0车牌辨识 699 范例13-15-1 Java呼叫外部命令Tesseract字符识别引擎 701 第14章 其它功能与整合效果 703 范例14-1-1离散傅立叶转换 703 范例14-2-1视差(视角不对称)使用BM 706 范例14-2-2视差(视角不对称)使用SGBM 708 范例14-3-1综合应用:虚拟钢琴Live版 710 范例14-4-1平面细分割使用Subdiv2D 711 范例14-4-2综合练习,平面细分割使用Subdiv2D应用于人脸 715 范例14-4-2综合练习,平面细分割应用人脸Live版 718 第15章 发行Java应用程式 721 第16章 Opencv与Web整合 723 范例16-1-1 Hello Opencv 723 范例16-1-2 利用opencv显示影像 726 范例16-1-3在Web上模糊处理 729 范例16-1-4 jsp应用模糊处理 730 附录A Opencv Mat资料结构列表 734 附录B Opencv色彩空间转换资料格式列表 736 附录C Iris鸢尾花数据集 743 附录D Opencv Java开发异常说明 748 附录E Opencv for Java 2.4.12与3.1差异 749 附录F Opencv相关网址 754
第1章 Visual C++与数字图像处理 1 1.1 数字图像处理概述 2 1.1.1 图像与数字图像 2 1.1.2 数字图像处理研究的内容 4 1.1.3 数字图像处理的应用 6 1.2 Visual C++概述 8 1.2.1 C++语言简介 8 1.2.2 Visual C++简介 16 1.2.3 Visual C++ 2005 集成开发环境 19 1.3 在Visual C++中处理数字图像 22 1.3.1 位图和调色板 22 1.3.2 图形设备接口 23 1.3.3 OpenCV 26 1.4 本章小结 26 第2章 Visual C++ 2005基础知识 27 2.1 利用向导生成应用程序 28 2.1.1 创建新项目 28 2.1.2 编译并运行工程 35 2.2 添加资源 36 2.2.1 新建资源 36 2.2.2 导入资源 38 2.3 MFC编程基础 38 2.3.1 MFC应用程序框架 39 2.3.2 Windows消息和事件驱动 40 2.3.3 常用消息 41 2.3.4 MFC的消息映射 42 2.4 消息与事件响应 44 2.4.1 添加类 44 2.4.2 添加类成员 45 2.4.3 添加消息响应 46 2.4.4 添加事件 47 2.4.5 添加函数重写 48 2.4.6 手动添加消息响应 50 2.5 对话框的使用 51 2.5.1 创建并编辑对话框资源 51 2.5.2 模式对话框和无模式对话框 55 2.5.3 消息对话框 57 2.5.4 共用对话框 59 2.6 常用控件的使用 64 2.6.1 按钮类控件 64 2.6.2 文本框 67 2.6.3 列表框 70 2.6.4 组合框 74 2.6.5 静态类控件 76 2.7 菜单栏和工具栏 77 2.7.1 菜单栏的使用 77 2.7.2 工具栏的使用 83 2.8 本章实例:简单的画图程序 87 2.8.1 实例预览 88 2.8.2 概要设计 88 2.8.3 完成实例编码 91 2.9 本章小结 98 第3章 认识色彩空间 99 3.1 颜色的基本知识 100 3.1.1 颜色的定义 100 3.1.2 颜色的属性 102 3.2 常用色彩空间简介 103 3.2.1 RGB颜色空间 103 3.2.2 CMY/CMYK颜色空间 105 3.2.3 HSV/HSB(HSI/HCI/HSL) 颜色空间 106 3.2.4 CIE系列颜色空间 109 3.2.5 YUV/YCbCr颜色空间 111 3.3 色彩空间的转换方法 112 3.3.1 RGB转换到HSV的方法 113 3.3.2 RGB转换到HSI的方法 114 3.3.3 RGB转换到YUV的方法 115 3.3.4 RGB转换到YCbCr的方法 116 3.4 本章实例:Photoshop 色彩编辑器 118 3.4.1 需求分析 118 3.4.2 概要设计 119 3.4.3 完成实例编码 121 3.5 本章小结 130 第4章 图像文件格式 131 4.1 图像文件概述 132 4.1.1 图像文件 132 4.1.2 图像文件的一般结构 132 4.1.3 图像文件的常用参数 133 4.2 BMP文件格式 134 4.2.1 文件结构 135 4.2.2 文件头和信息头 135 4.2.3 主要参数 136 4.3 GIF文件格式 136 4.3.1 GIF格式简介 137 4.3.2 GIF文件结构 137 4.3.3 GIF文件块的结构 138 4.4 PNG文件格式 142 4.4.1 PNG格式简介 142 4.4.2 PNG文件结构 143 4.4.3 PNG中的关键数据块 144 4.5 图像的压缩编码 146 4.5.1 Huffman编码 147 4.5.2 LZW编码 148 4.5.3 行程编码 151 4.5.4 离散余弦变换 151 4.6 JPEG文件格式 153 4.6.1 JPEG文件概述 153 4.6.2 JPEG编码/解码的理论基础 153 4.6.3 JPEG文件的格式 160 4.7 本章实例:JPEG解码程序 163 4.7.1 概要设计 163 4.7.2 完成实例编码 169 4.8 本章小结 188 第5章 使用DIB处理数字图像 189 5.1 设备相关位图和设备 无关位图 190 5.1.1 设备相关位图(DDB) 190 5.1.2 设备无关位图(DIB) 190 5.2 CBitmap类 190 5.2.1 创建DDB 191 5.2.2 CBitmap中的成员函数 193 5.2.3 应用DDB显示图像 193 5.2.4 应用DDB显示大图像 195 5.3 进一步了解DIB 203 5.3.1 DIB的结构 203 5.3.2 DIB信息段 203 5.3.3 位图数据 205 5.3.4 与DIB有关的函数 206 5.4 本章实例:DIB类的封装 208 5.4.1 设计 208 5.4.2 构造函数 210 5.4.3 DIB位图的显示 214 5.4.4 BMP文件的存储 215 5.5 本章小结 216 第6章 使用GDI+处理数字图像 217 6.1 GDI+简介 218 6.1.1 GDI+概述 218 6.1.2 GDI+的结构 218 6.2 在Visual C++中应用GDI+ 219 6.2.1 GDI+ 在Visual C++ 2005 中的配置方法 219 6.2.2 在Visual 6.0中使用GDI+ 221 6.3 GDI+基础 222 6.3.1 Graphics类 222 6.3.2 GDI+的基本数据类型 225 6.3.3 GDI+中的颜色 226 6.4 GDI+处理图像的基本方法 228 6.4.1 GDI+的图像类 228 6.4.2 创建图像对象 229 6.4.3 图像的显示和缩放 232 6.4.4 图像的基本处理方法 237 6.5 处理图像的色彩 244 6.5.1 ColorMatrix结构体 244 6.5.2 改变图像的透明度 245 6.5.3 将图像转换为灰度图 249 6.5.4 改变图像的亮度 251 6.5.5 改变图像的对比度 253 6.6 本章实例:播放GIF动画 255 6.6.1 播放原理分析 255 6.6.2 处理过程 256 6.6.3 具体实现 257 6.7 本章小结 260 第7章 使用OpenCV处理 数字图像 261 7.1 OpenCV简介 262 7.1.1 OpenCV概述 262 7.1.2 OpenCV的特点 263 7.1.3 OpenCV的命名规则 263 7.1.4 OpenCV的应用举例 264 7.2 OpenCV的安装与配置 266 7.2.1 OpenCV 在Visual C++ 6.0 下的安装与配置 266 7.2.2 OpenCV 在Visual C++ 2005 下的安装与配置 268 7.3 OpenCV的结构 271 7.3.1 OpenCV的体系结构 271 7.3.2 OpenCV的函数结构 271 7.3.3 OpenCV的功能结构 273 7.3.4 OpenCV数据结构 274 7.4 本章实例:利用OpenCV 显示图像 275 7.4.1 图像文件的载入与显示 275 7.4.2 图像文件的创建、 保存和复制 277 7.5 本章小结 282 第8章 常见图像显示特效 283 8.1 显示特效概述 284 8.1.1 显示特效基础 284 8.1.2 显示特效过程 286 8.1.3 显示特效类 287 8.2 扫描显示特效 289 8.2.1 特效预览 289 8.2.2 基本原理和实现方法 289 8.2.3 编程实现 290 8.3 移动显示特效 292 8.3.1 特效预览 292 8.3.2 基本原理和实现方法 292 8.3.3 编程实现 293 8.4 百叶窗显示特效 295 8.4.1 特效预览 295 8.4.2 基本原理和实现方法 295 8.4.3 编程实现 297 8.5 栅条显示特效 298 8.5.1 特效预览 298 8.5.2 基本原理和实现方法 299 8.5.3 编程实现 300 8.6 马赛克显示特效 301 8.6.1 特效预览 301 8.6.2 基本原理和实现方法 302 8.6.3 编程实现 303 8.7 雨滴显示特效 304 8.7.1 特效预览 304 8.7.2 基本原理和实现方法 304 8.7.3 编程实现 305 8.8 本章实例:类似ACDSee 的图像浏览工具 306 8.8.1 实例预览 306 8.8.2 概要设计 307 8.8.3 完成实例编码 311 8.9 本章小结 324 第9章 图像的点运算 325 9.1 灰度直方图 326 9.1.1 灰度直方图 326 9.1.2 基本原理 328 9.1.3 编程实现 328 9.2 灰度线性变换 338 9.2.1 基本原理 338 9.2.2 编程实现 341 9.3 灰度非线性变换 344 9.3.1 灰度对数变换 344 9.3.2 灰度幂次变换 350 9.3.3 灰度指数变换 353 9.4 灰度阈值变换 354 9.4.1 基本原理 355 9.4.2 编程实现 355 9.5 灰度拉伸 357 9.5.1 基本原理 358 9.5.2 编程实现 360 9.6 灰度均衡 364 9.6.1 基本原理 364 9.6.2 编程实现 365 9.7 本章小结 366 第10章 对图像进行几何变换 367 10.1 图像几何变换的基本理论 368 10.1.1 图像几何变换概述 368 10.1.2 图像几何变换的数学描述 370 10.2 图像的平移变换 371 10.2.1 效果预览 371 10.2.2 基本原理 371 10.2.3 编程实现 373 10.3 图像的镜像变换 377 10.3.1 效果预览 377 10.3.2 基本原理 378 10.3.3 编程实现 379 10.4 图像的转置 383 10.4.1 效果预览 383 10.4.2 基本原理 384 10.4.3 编程实现 385 10.5 图像的缩放 386 10.5.1 效果预览 387 10.5.2 基本原理 387 10.5.3 插值算法介绍 388 10.5.4 编程实现 392 10.6 图像的旋转 398 10.6.1 效果预览 398 10.6.2 基本原理 398 10.6.3 编程实现 403 10.7 使用GDI+实现图像的 几何变换 409 10.7.1 GDI+的变换操作 409 10.7.2 平移 410 10.7.3 缩放 412 10.7.4 旋转 413 10.7.5 变换的组合 417 10.7.6 利用矩阵进行其他 几何变化 419 10.8 本章小结 422 第11章 图像的增强处理 423 11.1 图像的简单平滑 424 11.1.1 邻域处理的基本概念 424 11.1.2 图像的简单平滑原理 427 11.1.3 图像简单平滑的算法实现 427 11.2 图像的高斯平滑 431 11.2.1 平滑线性滤波器 432 11.2.2 高斯平滑的原理 432 11.2.3 高斯平滑的算法实现 433 11.3 图像的中值滤波 436 11.3.1 统计排序滤波器 437 11.3.2 图像中值滤波的原理 437 11.3.3 图像中值滤波的算法实现 439 11.4 应用OpenCV对图像 进行平滑处理 445 11.4.1 函数描述 445 11.4.2 概要设计 446 11.4.3 编码实现 446 11.5 拉普拉斯边缘增强 452 11.5.1 图像的锐化 452 11.5.2 图像拉普拉斯锐化的原理 452 11.5.3 图像拉普拉斯锐化的 算法实现 453 11.6 Sobel边缘细化 457 11.6.1 Sobel边缘细化的原理 457 11.6.2 Sobel边缘细化的 编程实现 459 11.7 本章小节 464 第12章 常见滤镜效果 465 12.1 图像的反色效果 466 12.1.1 底片效果 467 12.1.2 实现方法及原理 467 12.1.3 编程实现 467 12.2 图像的雕刻效果 469 12.2.1 雕刻效果 469 12.2.2 实现方法及原理 469 12.2.3 编程实现 470 12.3 图像的黑白效果 472 12.3.1 黑白效果 472 12.3.2 实现方法及原理 473 12.3.3 编程实现 473 12.4 图像的雾化效果 475 12.4.1 雾化效果 475 12.4.2 图像点阵的随机化处理 476 12.4.3 编程实现 476 12.5 图像的马赛克效果 483 12.5.1 马赛克效果 483 12.5.2 实现方法及原理 483 12.5.3 编程实现 484 12.6 图像的素描效果 487 12.6.1 素描效果 487 12.6.2 实现方法及原理 487 12.6.3 编程实现 487 12.7 本章小结 490 第13章 边缘检测和轮廓跟踪 491 13.1 边缘检测 492 13.1.1 边缘检测的基本概念 492 13.1.2 常规边缘检测 493 13.1.3 带方向的边缘检测 498 13.1.4 拉普拉斯算子 503 13.2 Hough变换 509 13.2.1 Hough变换的原理 509 13.2.2 编程实现 515 13.3 种子算法 520 13.3.1 算法介绍 520 13.3.2 编程实现 523 13.4 轮廓跟踪 526 13.4.1 区域表示方法 526 13.4.2 单区域跟踪 536 13.4.3 多区域跟踪 539 13.5 本章实例:应用OpenCV 进行边缘检测 541 13.5.1 Canny准则 541 13.5.2 Canny算法 542 13.5.3 在OpenCV中使用Canny 算法 543 13.6 本章小结 548 第14章 图像的形态学处理 549 14.1 数学形态学 550 14.2 一些必要的概念和 符号约定 550 14.3 图像的腐蚀 554 14.3.1 腐蚀原理 554 14.3.2 编程实现 557 14.4 图像的膨胀 562 14.4.1 膨胀原理 562 14.4.2 编程实现 565 14.5 腐蚀和膨胀的性质及应用 568 14.5.1 腐蚀和膨胀的代数性质 568 14.5.2 腐蚀和膨胀的应用 571 14.6 开运算和闭运算 577 14.6.1 开运算 578 14.6.2 闭运算 579 14.6.3 编程实现 580 14.6.4 开运算和闭运算的 代数性质 582 14.7 图像形态学的其他运算 584 14.7.1 击中/不击中运算 584 14.7.2 细化处理 588 14.8 本章实例:应用OpenCV 进行形态学处理 592 14.8.1 函数描述 592 14.8.2 概要设计 592 14.8.3 编码实现 593 14.9 本章小结 598 第15章 图像分割与目标识别 599 15.1 图像的分割 601 15.1.1 基于幅度的图像分割 601 15.1.2 基于区域的图像分割 606 15.1.3 基于形态学分水岭的 图像分割 611 15.2 图像的匹配 614 15.2.1 基本概念 614 15.2.2 模板匹配算法 615 15.2.3 序贯相似性检测算法 616 15.2.4 幅度排序算法 618 15.3 模式的识别 620 15.3.1 基本概念 620 15.3.2 统计模式识别 621 15.3.3 其他模式识别方法简介 627 15.4 本章实例:静态人脸 检测程序 628 15.4.1 人脸检测概述 628 15.4.2 算法分析 629 15.4.3 应用OpenCV进行 人脸检测 633 15.5 本章小结 640

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧