码迷,mamicode.com
首页 > 其他好文 > 详细

DIP 准备工作

时间:2015-03-15 22:31:19      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

工具:VS2010+OpenCV2.4.11

读入图片,并按点处理 没个像素点灰度级加1

代码:

 1 #include <opencv2\opencv.hpp>
 2 #include <iostream>
 3 #include <string>
 4 using namespace cv;
 5 using namespace std;
 6 int main()
 7 {
 8     IplImage* img; //声明IplImage指针
 9     //载入图像
10     img = cvLoadImage("C://Users//Administrator//Desktop//dip//pp.png",0) ;
11 
12     cvNamedWindow( "Image1", 1 );//创建窗口
13     cvShowImage( "Image1", img );//显示图像
14 
15     for(int row = 0; row<img->height; row++)
16     {
17         for (int col=0; col<img->width; col++)
18         {
19             if((unsigned char)(img->imageData[row*img->widthStep+col])!=255)
20                 img->imageData[row*img->widthStep+col] +=10;
21         }
22     }
23 
24         cvNamedWindow( "Image", 1 );//创建窗口
25         cvShowImage( "Image", img );//显示图像
26         cvWaitKey(0); //等待按键
27  
28         cvDestroyWindow( "Image" );//销毁窗口
29         cvDestroyWindow( "Image1" );//销毁窗口
30         cvReleaseImage( &img ); //释放图像
31         return 0;
32 }

结果:技术分享

代码中的注意点:

1.第19行的强制类型转换是因为默认的ImageData类型为char,也就是从-127~128,如果不转换原图的全白区域会变成全黑:

技术分享

2.依然第19行,中括号中的内容是遍历到的像素点,之所用乘的是widthstep而不是width,是因为图像的存储 是以4的倍数进行的,也就是行末会有不存放像素灰度值的空余。

 

DIP 准备工作

标签:

原文地址:http://www.cnblogs.com/luckyhtt/p/4340398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!