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

德阳网站开发用ps怎么做短视频网站

德阳网站开发,用ps怎么做短视频网站,json网站开发,英文网站建设网站目录 1、介绍1.1 灰度反转1.2 图像对数变换1.3 图像伽马变换 2、效果图3、代码实现4、源码展示 1、介绍 1.1 灰度反转 灰度反转是一种线性变换#xff0c;是将某个范围的灰度值映射到另一个范围内#xff0c;一般是通过灰度的对调#xff0c;突出想要查看的灰度区间。 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]) SL−1−r(r⊂[0,L−1]) 比如在以下胸片图像中提取白色絮状形状在黑色背景下看的不太明显就可以使用灰度反转增强图像的可视化效果。 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.atuchar(i, j) 255 - input_img.atuchar(i, j)} }1.2 图像对数变换 对数变换可以将图像中低灰度值的部分进行提升显示出低灰度部分的特征对高灰度值部分进行抑制减少高灰度值部分的细节从而实现增项图像俺不细节优化图像的对比度。 S c log ⁡ ( 1 r ) Sc\log(1r) Sclog(1r) 其原理就是对数曲线在像素值低的区域斜率大在像素值高的地方斜率小。 对数变换后图像的灰度值可能会超出0~255的区间所以在对数变换后要进行归一化处理将图像灰度值调节回0-255的区间。 Mat LogarithmImg grayImg.clone();for(int i0;igrayImg.rows;i){for(int j0;jgrayImg.cols;j){LogarithmImg.atuchar(i,j) 6*log((double)grayImg.atuchar(i,j) 1);}}normalize(LogarithmImg, LogarithmImg, 0, 255,NORM_MINMAX);convertScaleAbs(LogarithmImg,LogarithmImg);1.3 图像伽马变换 图像的伽马变换其实就是通过非线性变换将图像中较暗区域的灰度值进行增强对较亮区域的灰度值进行抑制从而获得图像比较好的细节特征。 s c r γ ( r ∈ [ 0 , 1 ] ) scr^\gamma (r\in[0, 1]) scrγ(r∈[0,1]) r为灰度的输入值c为灰度缩放系数伽马因子控制整个变换的缩放程度。 Mat gammaImg grayImg.clone();for(int i0;igrayImg.rows;i){for(int j0;jgrayImg.cols;j){gammaImg.atuchar(i,j) 6*pow((double)grayImg.atuchar(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 QResizeEventQT_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_Hwidget.cpp #pragma execution_character_set(utf-8) #include widget.h #include ui_widget.h #include QDebugWidget::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 i0;igrayImg.rows;i){for(int j0;jgrayImg.cols;j){InversionImg.atuchar(i,j) 255 - grayImg.atuchar(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 i0;igrayImg.rows;i){for(int j0;jgrayImg.cols;j){LogarithmImg.atuchar(i,j) 6*log((double)grayImg.atuchar(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 i0;igrayImg.rows;i){for(int j0;jgrayImg.cols;j){gammaImg.atuchar(i,j) 6*pow((double)grayImg.atuchar(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_castint(mat.step), QImage::Format_RGB32 );return image;}// 8-bit 3 channelcase CV_8UC3:{QImage image( (const uchar*)mat.data, mat.cols, mat.rows, static_castint(mat.step), QImage::Format_RGB888 );return image.rgbSwapped();}// 8-bit 1 channelcase CV_8UC1:{static QVectorQRgb 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_castint(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://www.hkea.cn/news/14501525/

相关文章:

  • wordpress网站手机端菜单栏怎样建设一个游戏网站
  • 国外seo网站嵌入式培训宣传
  • 怎么更换网站的域名廊坊做网站的
  • 电子 网站模板火车头wordpress发布图片
  • 如何做弹幕网站国外浏览器搜索引擎入口
  • 超八成搜索网站存在信息泄露问题wordpress菜单a标签
  • 公司做网站要多久竞价托管推广
  • 做app网站需要什么企业wordpress
  • 预付的网站开发费用怎么入账网店托管代运营费用多少钱
  • 山东东平建设工程招标网站网站排名怎么做 知乎
  • 建设网站的机构seo和sem分别是什么
  • 做个企业网站大概多少费用在线wordpress
  • 湖南营销型企业网站开发应用商店手机版下载
  • 弧度网站建设丹阳建设局网站
  • 做本地网站赚钱吗发布新闻稿
  • 制作网站平台网络营销的发展历程
  • 五个网站页面wordpress 添加文章
  • 3合一网站怎么做投票网页怎么制作
  • 网站建设的难处如何借助网站打广告
  • 网站建设需求材料免费ppt模板下载大全网站
  • 设计企业网站步骤夜蝶直播app
  • 中国一级爱做电影网站智慧政务门户网站建设
  • 什么网站可以做海报赚钱深圳网站建设-猴王网络
  • 网页设计与制作网站教程做网站技巧
  • 备案网站公共查询企业网站建设好的案例
  • 怎样在网站做视频链接wordpress 系统找不到指定的文件.
  • 青田网站建设wordpress get_category_parents
  • cms建站系统是什么什么网站可以做投资
  • 网站投票功能宜宾三江新区核酸检测
  • 建设网站公司价格专门做定制的网站