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

暴利产品竞价单页网站优化设计三年级上册答案

暴利产品竞价单页网站,优化设计三年级上册答案,印度vps云服务器,网站怎么关闭文章选自: 一、像素访问 一张图片由许多个点组成,每个点就是一个像素,每个像素包含不同的值,对图像像素操作是图像处理过程中常使用的 二、访问像素 void Samples::AccessPixels1(Mat &image, int div 64) {int nl imag…

文章选自:
请添加图片描述

一、像素访问

一张图片由许多个点组成,每个点就是一个像素,每个像素包含不同的值,对图像像素操作是图像处理过程中常使用的

二、访问像素

void Samples::AccessPixels1(Mat &image, int div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------data[i] = data[i] / div * div + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//-----------------------------------【方法二】-------------------------------------------------
//      说明:利用 .ptr 和 * ++
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels2(Mat &image, int div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------*data++ = *data / div * div + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//-----------------------------------------【方法三】-------------------------------------------
//      说明:利用.ptr 和 * ++ 以及模操作
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels3(Mat &image, int div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------int v = *data;*data++ = v - v % div + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//----------------------------------------【方法四】---------------------------------------------
//      说明:利用.ptr 和 * ++ 以及位操作
//----------------------------------------------------------------------------------------------------
void Samples::AccessPixels4(Mat &image, int  div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 对于 div=16, mask= 0xF0for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//------------开始处理每个像素-------------------*data++ = *data & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//----------------------------------------【方法五】----------------------------------------------
//      说明:利用指针算术运算
//---------------------------------------------------------------------------------------------------
void Samples::AccessPixels5(Mat &image, int  div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));int step = image.step; //有效宽度//掩码值uchar mask = 0xFF << n; // e.g. 对于 div=16, mask= 0xF0//获取指向图像缓冲区的指针uchar *data = image.data;for (int j = 0; j < nl; j++) {for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------*(data + i) = *data & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束data += step; // next line}
}//---------------------------------------【方法六】----------------------------------------------
//      说明:利用 .ptr 和 * ++以及位运算、image.cols * image.channels()
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels6(Mat &image, int  div = 64) {int nl = image.rows; //行数int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 例如div=16, mask= 0xF0for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < image.cols * image.channels(); i++) {//-------------开始处理每个像素-------------------*data++ = *data & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}// -------------------------------------【方法七】----------------------------------------------
//      说明:利用.ptr 和 * ++ 以及位运算(continuous)
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels7(Mat &image, int  div = 64) {int nl = image.rows;                    //行数int nc = image.cols * image.channels(); //每行元素的总元素数量if (image.isContinuous()) {//无填充像素nc = nc * nl;nl = 1; // 为一维数列}int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 比如div=16, mask= 0xF0for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------*data++ = *data & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//------------------------------------【方法八】------------------------------------------------
//      说明:利用 .ptr 和 * ++ 以及位运算 (continuous+channels)
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels8(Mat &image, int  div = 64) {int nl = image.rows; //行数int nc = image.cols; //列数if (image.isContinuous()) {//无填充像素nc = nc * nl;nl = 1; // 为一维数组}int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 比如div=16, mask= 0xF0for (int j = 0; j < nl; j++) {uchar *data = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------*data++ = *data & mask + div / 2;*data++ = *data & mask + div / 2;*data++ = *data & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}// -----------------------------------【方法九】 ------------------------------------------------
//      说明:利用Mat_ iterator
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels9(Mat &image, int  div = 64) {//获取迭代器Mat_<Vec3b>::iterator it = image.begin<Vec3b>();Mat_<Vec3b>::iterator itend = image.end<Vec3b>();for (; it != itend; ++it) {//-------------开始处理每个像素-------------------(*it)[0] = (*it)[0] / div * div + div / 2;(*it)[1] = (*it)[1] / div * div + div / 2;(*it)[2] = (*it)[2] / div * div + div / 2;//-------------结束像素处理------------------------} //单行处理结束
}//-------------------------------------【方法十】-----------------------------------------------
//      说明:利用Mat_ iterator以及位运算
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels10(Mat &image, int  div = 64) {// div必须是2的幂int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 比如 div=16, mask= 0xF0// 获取迭代器Mat_<Vec3b>::iterator it = image.begin<Vec3b>();Mat_<Vec3b>::iterator itend = image.end<Vec3b>();//扫描所有元素for (; it != itend; ++it) {//-------------开始处理每个像素-------------------(*it)[0] = (*it)[0] & mask + div / 2;(*it)[1] = (*it)[1] & mask + div / 2;(*it)[2] = (*it)[2] & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束
}//------------------------------------【方法十一】---------------------------------------------
//      说明:利用Mat Iterator_
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels11(Mat &image, int  div = 64) {//获取迭代器Mat_<Vec3b>           cimage = image;Mat_<Vec3b>::iterator it = cimage.begin();Mat_<Vec3b>::iterator itend = cimage.end();for (; it != itend; it++) {//-------------开始处理每个像素-------------------(*it)[0] = (*it)[0] / div * div + div / 2;(*it)[1] = (*it)[1] / div * div + div / 2;(*it)[2] = (*it)[2] / div * div + div / 2;//-------------结束像素处理------------------------}
}void Samples::AccessPixels12(Mat &image, int  div = 64) {int nl = image.rows; //行数int nc = image.cols; //列数for (int j = 0; j < nl; j++) {for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------image.at<Vec3b>(j, i)[0] = image.at<Vec3b>(j, i)[0] / div * div + div / 2;image.at<Vec3b>(j, i)[1] = image.at<Vec3b>(j, i)[1] / div * div + div / 2;image.at<Vec3b>(j, i)[2] = image.at<Vec3b>(j, i)[2] / div * div + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//----------------------------------【方法十三】-----------------------------------------------
//      说明:利用图像的输入与输出
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels13(const Mat &image,  //输入图像Mat &      result, // 输出图像int         div = 64) {int nl = image.rows; //行数int nc = image.cols; //列数//准备好初始化后的Mat给输出图像result.create(image.rows, image.cols, image.type());//创建无像素填充的图像nc = nc * nl;nl = 1; //单维数组int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g.比如div=16, mask= 0xF0for (int j = 0; j < nl; j++) {uchar *      data = result.ptr<uchar>(j);const uchar *idata = image.ptr<uchar>(j);for (int i = 0; i < nc; i++) {//-------------开始处理每个像素-------------------*data++ = (*idata++) & mask + div / 2;*data++ = (*idata++) & mask + div / 2;*data++ = (*idata++) & mask + div / 2;//-------------结束像素处理------------------------} //单行处理结束}
}//--------------------------------------【方法十四】-------------------------------------------
//      说明:利用操作符重载
//-------------------------------------------------------------------------------------------------
void Samples::AccessPixels14(Mat &image, int div = 64) {int n = static_cast<int>(log(static_cast<double>(div)) / log(2.0));//掩码值uchar mask = 0xFF << n; // e.g. 比如div=16, mask= 0xF0//进行色彩还原image = (image & Scalar(mask, mask, mask)) + Scalar(div / 2, div / 2, div / 2);
}
http://www.ds6.com.cn/news/106597.html

相关文章:

  • 企业网站建设有什么好种子搜索引擎torrentkitty
  • 世界杯网站建设营销策划方案怎么写?
  • 网站后台管理器怎么做怎么去做网络推广
  • 西安企业网站制作百度代发排名
  • 织梦怎么建设论坛网站盐城seo营销
  • 做智能网站软件网站seo优化服务商
  • 外贸网站优化公司海南百度推广电话
  • 什么网站容易做全国各城市感染高峰进度查询
  • 移动端的优势郑州seo顾问热狗hotdoger
  • 网站制作公司智能 乐云践新今日热搜榜排名最新
  • 网站建设详细需求文档长沙seo就选智优营家
  • 设计网站如何推广站长统计app进入网址新版小猪
  • 常州做网站找哪家好火星培训机构收费明细
  • 政府门户网站建设目的百度关键词推广怎么收费
  • 发帖子的网站海外推广代理商
  • 做网站有谁做企业全网推广公司
  • php网站建设心得体会百度推广网站平台
  • 网站制作报价seo外链推广平台
  • sem优化操作晨阳seo
  • 天津 公司网站建设免费网站推广平台
  • 住房和城乡规划建设局网站子域名网址查询
  • 做网站建设价格代发关键词排名包收录
  • 上海市建设安装协会网站抖音seo培训
  • 深圳做网站的公司哪个好网站seo优化课程
  • 开个做网站要多少钱关键词是指什么
  • 做网站的总结培训网
  • 佛山优化网站排名收费推广赚钱app排行榜
  • 温州模板网站建站关键词优化靠谱推荐
  • 线上宣传推广方案谷歌seo排名优化服务
  • 网站服务器停止响应怎么办网站seo优化价格