当前位置: 首页 > news >正文

肇庆做网站的公司百度推广客服

肇庆做网站的公司,百度推广客服,wordpress 安装 失败,深圳哪个公司做网站好最近做的课程作业需要用到CImage函数处理图像,其中涉及到读取图像以及对图像像素进行操作,在这里记录一下自己的理解。 首先是CImage类的定义和读取图片 CImage srcImage;CImage dstImage;CString path "C:\\Users\\Administrator\\Desktop\\阈值分…

    最近做的课程作业需要用到CImage函数处理图像,其中涉及到读取图像以及对图像像素进行操作,在这里记录一下自己的理解。


    首先是CImage类的定义和读取图片

	CImage srcImage;CImage dstImage;CString path = "C:\\Users\\Administrator\\Desktop\\阈值分割_20172120658\\input.png";CString pathdown = "C:\\Users\\Administrator\\Desktop\\阈值分割_20172120658\\outtput.png";

    如图 定义两个CImage类的对象,然后使用CString类型的变量定义图片的读取路径和保存路径。

	srcImage.Load(path);byte* pRealData; 

    这里利用CImage::Load()函数读取图片到srcImage中,接下来准备读取图像中的像素值,因为在CImage中利用堆栈进行读取的方法速度很慢,在这里我就不写了,这里使用的是直接利用c里面的指针对像素进行读取和遍历操作。首先定义一个byte类型的指针。

	pRealData = (byte*)srcImage.GetBits();	//获取到图片内存点的位置int pit = srcImage.GetPitch();			//图像每行字节数int bitCount = srcImage.GetBPP() / 8;	//获取每像素的位数~~/8得到字节数cout << "图像每行的字节数" << pit << " " << "图像每个像素的位数" << bitCount << endl;

    利用CImage::GetBits()函数获取图片内存点的位置,使用这种方法的时候,需要考虑图形的结构,使用CImage::GetBPP获取每个像素点占几位,还需要使用CImage::GetPitch获取每一行位的个数,根据GetPitch的正负值来判定GetBits获取到的head是首行的还是尾行的。负值即为尾部,正值即为头部。

    

    其中pit得到的是字节数,也就是说如果每个像素有3个字节(RGB),一个宽为100像素的图片它的CImage::GetPitch()就是300。CImage::GetBPP()得到的是每个像素的位数,通常灰度图为8或者32,三通道RGB图像为24位。


	int height = srcImage.GetHeight();int width = srcImage.GetWidth();cout << "height" << height << "   width" << width << endl;vector<int> gray(256);for (int i = 1; i <= 256; i++){gray.push_back(0);}for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){gray.at((int)(*(pRealData + pit*i + j*bitCount))) += 1;}}

对图像的像素进行读取,需要对指针进行转换,转换为int类型。我这里是对图像的灰度值进行了统计处理。



最后附上一个利用直方图做的图像二值化

#include<atlimage.h>
#include<stdio.h>
#include<iostream>
#include<vector>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;void main()
{CImage srcImage;CImage dstImage;CString path = "C:\\Users\\Administrator\\Desktop\\阈值分割_20172120658\\input.png";CString pathdown = "C:\\Users\\Administrator\\Desktop\\阈值分割_20172120658\\outtput.png";srcImage.Load(path);byte* pRealData; byte* pRealData1; byte* pRealData2; byte* pRealData3;pRealData = (byte*)srcImage.GetBits();	//获取到图片内存点的位置int pit = srcImage.GetPitch();			//图像每行字节数int bitCount = srcImage.GetBPP() / 8;	//获取每像素的位数~~/8得到字节数cout << "图像每行的字节数" << pit << " " << "图像每个像素的位数" << bitCount << endl;int height = srcImage.GetHeight();int width = srcImage.GetWidth();cout << "height" << height << "   width" << width << endl;vector<int> gray(256);for (int i = 1; i <= 256; i++){gray.push_back(0);}//pRealData1 = pRealData;for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){gray.at((int)(*(pRealData + pit*i + j*bitCount))) += 1;}}int max = 0;int sec = 0;int locamax = 0;int locasec = 0;for (int i = 0; i < 256; i++){cout << i << "---" << gray[i] << endl;if (gray[i] > max){max = gray[i];locamax = i;        //获取相同灰度值像素点最多的灰度值}}for (int i = 0; i < 256; i++){if (gray[i] > sec&&abs(i-locamax)>10)    //第二多的点需要距离最多的点至少10个灰度单位{sec = gray[i];locasec = i;     //获取相同灰度值像素点第二多的灰度值}}cout <<locamax<<"__"<<locasec << endl;int min = (locamax + locasec) / 2;    //取两峰中间值作为二值化分割阈值for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){if ((int)(*(pRealData + pit*i + j*bitCount)) < min){*(pRealData + pit*i + j*bitCount) = 0;*(pRealData + pit*i + j*bitCount+1) = 0;*(pRealData + pit*i + j*bitCount+2) = 0;}else{*(pRealData + pit*i + j*bitCount) = 255;*(pRealData + pit*i + j*bitCount + 1) = 255;*(pRealData + pit*i + j*bitCount + 2) = 255;}}}srcImage.Save(pathdown);system("pause");
}

                                                原图

                                             二值化
http://www.yidumall.com/news/93326.html

相关文章:

  • 在上面网站上可以做统计图苏州seo营销
  • 佛山网页制作设计优化网站性能
  • 做物品租赁网站西安seo诊断
  • 中国建材b2b电商平台有哪些seo竞争对手分析
  • 做特产网站大连网站排名推广
  • 北京王府井图片快速排名seo
  • 网站前置审批类型百度推广开户电话
  • 政府门户网站如何做预算网络广告策划书模板范文
  • 网站设置关于我们怎么做如何做网络推广赚钱
  • 政府网站建立单位百度关键词的费用是多少
  • 网站建设的入门书籍域名注册服务机构
  • 广州市照明建设管理中心网站网络营销课程设计
  • 点对点视频网站开发网络营销方案ppt
  • wordpress导航条加搜索太原seo排名收费
  • 做的比较好的卡车网站怎么把网站排名排上去
  • 深圳网站建设及优化视频seo优化教程
  • 做网站图片切图是什么北京营销公司比较好的
  • 上海设计公司名称大全西安关键词seo公司
  • c 做网站上海优化公司
  • 贵州网站制作设计公司搜狗引擎
  • 垂直电商网站如何做内容运营企业网站是什么
  • ps做的网站如何转入dw精准营销包括哪几个方面
  • 做外贸网站要花多少钱全国疫情最新数据
  • 网站一般多少钱深圳华强北新闻最新消息今天
  • 商城型网站建设线上推广方式有哪些
  • 我们不是做网站的广州最新疫情
  • 精品课程网站开发的开题报告seo优化什么意思
  • dede网站优化seo搜索引擎优化包邮
  • 不用网站做cpa重庆seo网络营销
  • 建设通网站有建筑公司名录大全培训网站模板