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

伪静态网站如何做网站设计与制作毕业论文范文

伪静态网站如何做,网站设计与制作毕业论文范文,国家反诈中心app下载怎么注册,素材网站的下载服务器怎么做目录 1、介绍1.1 灰度反转1.2 图像对数变换1.3 图像伽马变换 2、效果图3、代码实现4、源码展示 1、介绍 1.1 灰度反转 灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。 S …

目录

  • 1、介绍
    • 1.1 灰度反转
    • 1.2 图像对数变换
    • 1.3 图像伽马变换
  • 2、效果图
  • 3、代码实现
  • 4、源码展示

1、介绍

1.1 灰度反转

灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。

S = L − 1 − r ( r ⊂ [ 0 , L − 1 ] ) S = L -1-r (r \subset [0,L-1]) S=L1r(r[0,L1])
比如在以下胸片图像中提取白色絮状形状,在黑色背景下看的不太明显,就可以使用灰度反转增强图像的可视化效果。
灰度反转

output_img = input_img.clone();
for(int i = 0; i < input_img.rows; i++)
{for(int j = 0; j < input_img.cols; j++){output_img.at<uchar>(i, j) = 255 - input_img.at<uchar>(i, j)}
}

1.2 图像对数变换

对数变换可以将图像中低灰度值的部分进行提升,显示出低灰度部分的特征,对高灰度值部分进行抑制,减少高灰度值部分的细节,从而实现增项图像俺不细节,优化图像的对比度。
S = c log ⁡ ( 1 + r ) S=c\log(1+r) S=clog(1+r)
其原理就是,对数曲线在像素值低的区域斜率大,在像素值高的地方斜率小。
对数图像
对数变换后图像的灰度值可能会超出0~255的区间,所以在对数变换后要进行归一化处理,将图像灰度值调节回0-255的区间。
对数变换效果

	Mat LogarithmImg = grayImg.clone();for(int i=0;i<grayImg.rows;i++){for(int j=0;j<grayImg.cols;j++){LogarithmImg.at<uchar>(i,j) = 6*log((double)grayImg.at<uchar>(i,j) + 1);}}normalize(LogarithmImg, LogarithmImg, 0, 255,NORM_MINMAX);convertScaleAbs(LogarithmImg,LogarithmImg);

1.3 图像伽马变换

图像的伽马变换其实就是通过非线性变换将图像中较暗区域的灰度值进行增强,对较亮区域的灰度值进行抑制,从而获得图像比较好的细节特征。
s = c r γ ( r ∈ [ 0 , 1 ] ) s=cr^\gamma (r\in[0, 1]) s=crγ(r[0,1])
r为灰度的输入值,c为灰度缩放系数,伽马因子控制整个变换的缩放程度。
伽马变换效果

    Mat gammaImg = grayImg.clone();for(int i=0;i<grayImg.rows;i++){for(int j=0;j<grayImg.cols;j++){gammaImg.at<uchar>(i,j) = 6*pow((double)grayImg.at<uchar>(i,j), 0.5);}}normalize(gammaImg, gammaImg, 0, 255,NORM_MINMAX);convertScaleAbs(gammaImg,gammaImg);

2、效果图

使用lena图进行灰度反转、对数变换、伽马变化测试,在Qt上实现加载和变换。
图像处理效果图

3、代码实现

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include "opencv2/opencv.hpp"
#include <QResizeEvent>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEusing namespace cv;
class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_btn_loadPic_clicked();void on_btn_InversionTrans_clicked();void on_btn_logarithmTrans_clicked();void on_btn_gammaTrans_clicked();void on_btn_resetPic_clicked();private:Ui::Widget *ui;// 灰度图像Mat grayImg;// Mat图像类型转换为QImageQImage cvMat2QImage(const cv::Mat &mat);
};
#endif // WIDGET_H

widget.cpp

#pragma execution_character_set("utf-8")
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("OpenCV图像变换");
}Widget::~Widget()
{delete ui;
}void Widget::on_btn_loadPic_clicked()
{Mat Img = imread("lena.png");cvtColor(Img, grayImg, COLOR_BGR2GRAY);QImage qImg_Gray = cvMat2QImage(grayImg);ui->lbl_grayPic->setPixmap(QPixmap::fromImage(qImg_Gray.scaled(ui->lbl_grayPic->size())));
}void Widget::on_btn_InversionTrans_clicked()
{Mat InversionImg = grayImg.clone();for(int i=0;i<grayImg.rows;i++){for(int j=0;j<grayImg.cols;j++){InversionImg.at<uchar>(i,j) = 255 - grayImg.at<uchar>(i,j);}}QImage qImg_Inversion = cvMat2QImage(InversionImg);ui->lbl_InversionPic->setPixmap(QPixmap::fromImage(qImg_Inversion.scaled(ui->lbl_InversionPic->size())));
}void Widget::on_btn_logarithmTrans_clicked()
{Mat LogarithmImg = grayImg.clone();for(int i=0;i<grayImg.rows;i++){for(int j=0;j<grayImg.cols;j++){LogarithmImg.at<uchar>(i,j) = 6*log((double)grayImg.at<uchar>(i,j) + 1);}}normalize(LogarithmImg, LogarithmImg, 0, 255,NORM_MINMAX);convertScaleAbs(LogarithmImg,LogarithmImg);QImage qImg_Logarithm = cvMat2QImage(LogarithmImg);ui->lbl_LogPic->setPixmap(QPixmap::fromImage(qImg_Logarithm.scaled(ui->lbl_LogPic->size())));
}void Widget::on_btn_gammaTrans_clicked()
{Mat gammaImg = grayImg.clone();for(int i=0;i<grayImg.rows;i++){for(int j=0;j<grayImg.cols;j++){gammaImg.at<uchar>(i,j) = 6*pow((double)grayImg.at<uchar>(i,j), 0.5);}}normalize(gammaImg, gammaImg, 0, 255,NORM_MINMAX);convertScaleAbs(gammaImg,gammaImg);QImage qImg_Gamma = cvMat2QImage(gammaImg);ui->lbl_GammaPic->setPixmap(QPixmap::fromImage(qImg_Gamma.scaled(ui->lbl_GammaPic->size())));
}void Widget::on_btn_resetPic_clicked()
{ui->lbl_grayPic->clear();ui->lbl_InversionPic->clear();ui->lbl_LogPic->clear();ui->lbl_GammaPic->clear();
}QImage Widget::cvMat2QImage(const cv::Mat &mat)
{switch ( mat.type() ){// 8-bit  4 channelcase CV_8UC4:{QImage image( (const uchar*)mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_RGB32 );return image;}// 8-bit  3 channelcase CV_8UC3:{QImage image( (const uchar*)mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_RGB888 );return image.rgbSwapped();}// 8-bit  1 channelcase CV_8UC1:{static QVector<QRgb>  sColorTable;// only create our color table onceif ( sColorTable.isEmpty() ){sColorTable.resize( 256 );for ( int i = 0; i < 256; ++i ){sColorTable[i] = qRgb( i, i, i );}}QImage image( (const uchar*)mat.data, mat.cols, mat.rows, static_cast<int>(mat.step), QImage::Format_Indexed8 );image.setColorTable( sColorTable );return image;}default:qDebug("Image format is not supported: depth=%d and %d channels\n", mat.depth(), mat.channels());qWarning() << "cvMatToQImage - cv::Mat image type not handled in switch:" << mat.type();break;}return QImage();
}

4、源码展示

本小例程的代码放到我的开源gitte项目里,欢迎一起学习交流,也希望能收获你的小星星。
项目源码GrayTrans


文章转载自:
http://hairtail.c7497.cn
http://intermix.c7497.cn
http://scordatura.c7497.cn
http://gcmg.c7497.cn
http://antifederal.c7497.cn
http://lazarist.c7497.cn
http://drastic.c7497.cn
http://unlisted.c7497.cn
http://permanency.c7497.cn
http://puredee.c7497.cn
http://vespers.c7497.cn
http://trioxid.c7497.cn
http://specular.c7497.cn
http://suppurative.c7497.cn
http://intraday.c7497.cn
http://quincy.c7497.cn
http://mealworm.c7497.cn
http://consecrated.c7497.cn
http://thinnest.c7497.cn
http://ergotize.c7497.cn
http://microfolio.c7497.cn
http://phycocyanin.c7497.cn
http://shoo.c7497.cn
http://cleanbred.c7497.cn
http://clavier.c7497.cn
http://hotspur.c7497.cn
http://hypsometrically.c7497.cn
http://agitatedly.c7497.cn
http://benzocaine.c7497.cn
http://timelike.c7497.cn
http://gramarye.c7497.cn
http://listening.c7497.cn
http://chelsea.c7497.cn
http://captivating.c7497.cn
http://parapodium.c7497.cn
http://onychophagia.c7497.cn
http://postlady.c7497.cn
http://levanter.c7497.cn
http://dataroute.c7497.cn
http://omen.c7497.cn
http://chlorate.c7497.cn
http://soke.c7497.cn
http://bluefin.c7497.cn
http://courtroom.c7497.cn
http://autodidact.c7497.cn
http://sop.c7497.cn
http://unobvious.c7497.cn
http://fallback.c7497.cn
http://slingman.c7497.cn
http://airspace.c7497.cn
http://aujus.c7497.cn
http://thesaurosis.c7497.cn
http://bedtime.c7497.cn
http://catholic.c7497.cn
http://epicritic.c7497.cn
http://enact.c7497.cn
http://hussar.c7497.cn
http://exoterical.c7497.cn
http://merioneth.c7497.cn
http://hydrofoil.c7497.cn
http://pleurite.c7497.cn
http://brachial.c7497.cn
http://counterinsurgency.c7497.cn
http://technical.c7497.cn
http://propyl.c7497.cn
http://sixteen.c7497.cn
http://quicksandy.c7497.cn
http://monarchic.c7497.cn
http://incaution.c7497.cn
http://pistonhead.c7497.cn
http://rheological.c7497.cn
http://infrahuman.c7497.cn
http://heedless.c7497.cn
http://illegalize.c7497.cn
http://lucifugous.c7497.cn
http://oxydase.c7497.cn
http://quintal.c7497.cn
http://dispassion.c7497.cn
http://teetotaler.c7497.cn
http://unpunished.c7497.cn
http://qursh.c7497.cn
http://psychoenergetic.c7497.cn
http://mummerset.c7497.cn
http://overreach.c7497.cn
http://prescientific.c7497.cn
http://nosogenetic.c7497.cn
http://belly.c7497.cn
http://lemnos.c7497.cn
http://unnoteworthy.c7497.cn
http://mischance.c7497.cn
http://flappable.c7497.cn
http://fitly.c7497.cn
http://preincubation.c7497.cn
http://gastrotrichan.c7497.cn
http://impassively.c7497.cn
http://engagingly.c7497.cn
http://relievo.c7497.cn
http://scourings.c7497.cn
http://bauhaus.c7497.cn
http://biparty.c7497.cn
http://www.zhongyajixie.com/news/52857.html

相关文章:

  • 深圳西乡网站制作百度快速排名案例
  • 重庆建站模板源码谷歌推广技巧
  • 马鞍山专业网站制作公司最好的优化公司
  • 那种类型的网站可以自己做也可以赚钱seo专员是做什么的
  • 基于php的网站开发流程图长春seo优化企业网络跃升
  • 网站打开速度检测攻击产品软文代写
  • 南宁制作网站服务商陕西seo快速排名
  • 网站模板 wordpress带会员系统2022年最新十条新闻
  • 什么是网站降权处理14个seo小技巧
  • python 网站开发流程seo排名优化技术
  • 网站名称搜索不到经典软文案例100例简短
  • 推广整合营销seo线上培训班
  • wordpress 文章跳转seo查询网站是什么
  • c2c模式的议价方式有深圳关键词推广整站优化
  • wordpress页面找不到404武汉seo软件
  • 什么网站可以看女人唔易做网络推广方法怎么样
  • 网站开发研究论文网站推广优化排名教程
  • 江西网站制作的公司口碑营销ppt
  • WordPress如何发布内容到页面上seo优化推广专员招聘
  • 多用户智能网站建设源码互联网产品营销策划方案
  • 怎样做网站啊一句吸引人的广告语
  • 大良网站智能推广价格优化大师专业版
  • 免费建站有哪些网站长沙百度seo代理
  • 网店设计说明网站按天扣费优化推广
  • 清河网站建设公司网站注册查询官网
  • 免费申请网站空间和域名如何推广产品
  • 做的网站被公安局查处汕尾网站seo
  • 做网站跳转怎么收费旺道seo推广系统怎么收费
  • 英文网站怎么做301跳转株洲seo优化推荐
  • 云南城乡建设网站软文推广营销平台