国内做网站比较好的公司网站统计ip pv

pingmian/2025/10/16 9:39:34/文章来源:
国内做网站比较好的公司,网站统计ip pv,枣庄做网站建设找哪家,可以做翻译的网站目录 第一部分、关于白平衡的知识 1、MATLAB 自动白平衡算法的实现 1.1、matlab代码 1.2、测试效果 1.3 测试源图 2、为什么摄像头采集的图像要做白平衡 3、自动白平衡算法总结 4、FPGA设计思路 4.1、实时白平衡的实现 4.2、计算流程优化思路 第二部分、硬件实…目录 第一部分、关于白平衡的知识     1、MATLAB 自动白平衡算法的实现 1.1、matlab代码 1.2、测试效果 1.3 测试源图 2、为什么摄像头采集的图像要做白平衡 3、自动白平衡算法总结 4、FPGA设计思路 4.1、实时白平衡的实现 4.2、计算流程优化思路   第二部分、硬件实现 1、除法IP核的调用方法 2、乘法IP核的调用方法 3、verilog代码 第三部分、实现结果 1、白平衡前后对比 2、总结 第一部分、关于白平衡的知识     1、MATLAB 自动白平衡算法的实现 大家先测试下面这段自动白平衡MATLAB代码代码来源于以下这篇博客我只不过加上了注释更多细节请大家参考这篇博客图像白平衡原理及实现-CSDN博客     1.1、matlab代码 %%白平衡与色温紧密相关不同色温光源下图像会呈现不同程度的偏色 %%由于人眼独特的适应性在不同光照条件下观看物体时不会出现偏色而就没这么先进了 %%蓝色光色温高红色光色温低 %CSDNhttps://blog.csdn.net/helimin12345/article/details/78255669clc; clear all; close all;tic;%用来记录程序的使用时间tic 程序 toc% imgSrc imread(green1.jpg); imgSrc imread(test2.png); %定义一个与图像大小一样的三位变量 imgDst imgSrc; %将RGB三个通道的数据进行分离 imgR imgSrc(:,:,1);%单个通道的数据默认 uint80~255 imgG imgSrc(:,:,2); imgB imgSrc(:,:,3); %对RGB三个通道的像素求均值相当于mean( mean( A ) ) 即对整一个矩阵求像素平均值 RAve mean2(imgR); GAve mean2(imgG); BAve mean2(imgB); aveGray (RAve GAve BAve) / 3;%比较系数 %计算三个通道的增益系数 RCoef aveGray / RAve; GCoef aveGray / GAve; BCoef aveGray / BAve; %使用增益系数来调整原始图 %注意其实这里应该是存在一个比较的过程小于255那就是当前值大于255那就等于255只不过uint8超出了255自动溢出了 %巧妙的运用溢出会减少很多计算量 RCorrection RCoef * imgR; GCorrection GCoef * imgG; BCorrection BCoef * imgB; %白平衡后的图像 imgDst(:,:,1) RCorrection; imgDst(:,:,2) GCorrection; imgDst(:,:,3) BCorrection; %显示两张图片 figure(1),imshow(imgSrc),title(original image); figure(2),imshow(imgDst),title(white balanced image); 1.2、测试效果 关于这两张测试照片我也会放在文末。先看效果 1.3 测试源图 我也是网上从别人博客保存的找不到原博客了 2、为什么摄像头采集的图像要做白平衡 人眼对白色很敏感 在不同色温下都能准确判断出白色。例如下面那张图色温比较高的时候会偏蓝色温比较低的的时候会偏红。 当摄像头在不同色温的光源下采集的图像会出现不同程度的偏色与人眼看到的颜色不一致因此需要进行白平衡处理。还有一点就是我感觉CMOS摄像头就算在正常光源下采集的图像也是偏绿的不知道是不是因为选用的Bayer转RGB的算法太垃圾了还是什么别的原因。关于Bayer转RGB的算法大家可以看这篇基于FPGA的Bayer转RGB算法实现 但是目前稍微好一点的摄像头模组都包含了自动白平衡算法都不需要做处理。 3、自动白平衡算法总结 把上面的matlab代码仔细读几遍读明白之后总结出白平衡算法的步骤 step1、分别对图像的R、G、B三通道的数据进行求和得到Rsum、Gsum、Bsum step2、获取图像的R、G、B三通道的平均值RvGvBvimag_width当前图像的宽 imag_high当前图像的高度。                         Rv  Rsum /imag_width*imag_high                         Gv   Gsum /imag_width*imag_high                         Bv    Bsum /imag_width*imag_high step3、将求得的Rv、Gv、Bv 进行加和取平均值得到Kv (Rv Gv Bv) / 3 step4、分别将R、G、B三通道的数据带入公式进行计算得到新的值                         R通道 Rnew R * Kv / Rv if(Rnew 255) Rnew 255;                         G通道Gnew  G * Kv / Gvif(Gnew 255) Gnew 255;                         B通道 Bnew  B * Kv / Bv if(Bnew 255) Bnew  255; step5、最后将计算后的图片显示出来便是白平衡后的图像。 4、FPGA设计思路 4.1、实时白平衡的实现 FPGA的摄像头采集的是实时的图像数据每秒采集30帧那么如何将FPGA获取的图像进行白平衡处理呢 解决办法就是计算当前帧图像的RvGvBvKv将计算的结果留给下一帧图像使用下一帧的RvGvBvKv计算结果又给下下一帧使用...一直循环就实现了实时的图像白平衡处理。 4.2、计算流程优化思路   正常情况下进行除法可以调用除法IP核来解决。但是当除数很大且接近于2^N时这时就可以用截位的方式来代替除法核。 例如对于分辨率为1920*1080图片Rv  Rsum /1920*1080而1920*1080  2,073,600非常接近于2^21 2,097,152。 如果我用2^21次幂来代替1920*1080那么只需要去除Rsum的低21位即可直接截位都不需要移位。这这太牛逼了 计算误差方法由于误差很小而且对于图像处理也不需要那么高的精度所以该方法可行。 (2^21 - (1920*1080)) / (1920*1080) (2,097,153 - 2,073,600) / 2,073,600 ≈ 0.0113585 ≈ 1.14% 第二部分、硬件实现 1、除法IP核的调用方法 第一步、搜索输入divider generator 第二步、配置第二个界面 第三步、配置第三个界面 注意这里的Latency配置为自动模式 第四步、整数有效位宽和余数有效位宽 注意这里的位宽需要记住方便后面截位数据 2、乘法IP核的调用方法 第一步、搜索multiplier 第二步、配置第二个界面 第三步、配置Output and control界面 注意这里是几级流水那么输出就有几个时钟周期的latency。这里选用系统推荐的流水级数当然也可以自定手动修改流水级数级数越多时序越好延迟越多因此实际开发要是情况而定。 3、verilog代码 // ----------------------------------------------------------------------------- // Copyright (c) 2014-2024 All rights reserved // ----------------------------------------------------------------------------- // Author : BigFartPeach // CSDN : 大屁桃 // E-mail : 2624507313qq.com // File : white_balance_my.v // Create : 2024-01-06 13:58:39 // ----------------------------------------------------------------------------- module white_balance_my(input wire clk,input wire rst,input wire vsync,input wire hsync,input wire [7:0]red,input wire [7:0]green,input wire [7:0]blue,output wire fra_vsy,output reg fra_hsy,output wire[23:0]rgb_new);//变量定义 /*累计这一帧并计算上一帧的累加结果*/ reg [1:0]vsync_dly;//对vsync延迟两拍 reg vsync_fall;//检测vsync下降沿reg [28:0]Rsum,Gsum,Bsum;//求和 reg [7:0]Ravg,Gavg,Bavg;//求均值直接舍去低21位wire[30:0]Ksum;//RsumGsumBsum的和wire[55:0]Temp_Kavg;//临时用来存储Kavg除法IP输出的结果 wire Kavg_valid;//除法IP核输出的结果有效标志 reg [30:0]Kavg;//除法IP核输出的结果 /// /*计算当前帧*/ wire [18:0]temp_red,temp_green,temp_blue;//用来存储red*Kavg、green*Kavg、blue*Kavg的值 wire [31:0]temp_red_new,temp_green_new,temp_blue_new;//用来存储除法IP输出的值temp_red/Ravg、temp_green/Gavg、temp_blue/Bavg wire temp_fra_hsy;//用来存储输出的red_new的valid用作输出的fra_hsy//凑成24bit输出 reg [7:0]red_new; reg [7:0]green_new; reg [7:0]blue_new;assign rgb_new {red_new,green_new,blue_new};//凑成24bit输出//vsync_dly打拍 always (posedge clk) beginvsync_dly {vsync_dly[0],vsync}; end //检测vsync下降沿 always (posedge clk or posedge rst) beginif (rst 1b1) beginvsync_fall 1b0;endelse if (vsync_dly 2b10) beginvsync_fall 1b1;endelse beginvsync_fall 1b0;//just one cycle clockend end//Rsum,Gsum,Bsum求和 以及 清零 always (posedge clk or posedge rst) beginif (rst 1b1) beginRsum d0;Gsum d0;Bsum d0;endelse if (vsync_fall 1b1) beginRsum d0;Gsum d0;Bsum d0; endelse if(hsync 1b1)beginRsum Rsum red;Gsum Gsum green;Bsum Bsum blue;end end //Ksum求和 assign Ksum Rsum Gsum Bsum;//如果用alway相较于RsumGsumBsum会晚一个时钟周期//Ravg,Gavg,Bavg求均值直接舍去Rsum,Gsum,Bsum的低21位 always (posedge clk or posedge rst) beginif (rst 1b1) beginRavg d0;Gavg d0;Bavg d0;endelse if (vsync_fall 1b1) beginRavg Rsum[28:21];Gavg Gsum[28:21];Bavg Bsum[28:21];end end//Kavg的除法IP33个latency div_gen_Ksum_div_1920x1080x3 div_gen_Kavg (.aclk(clk), // input wire aclk.s_axis_divisor_tvalid(vsync_fall), // input wire s_axis_divisor_tvalid.s_axis_divisor_tdata(23d6220800), // input wire [23 : 0] s_axis_divisor_tdata.s_axis_dividend_tvalid(vsync_fall), // input wire s_axis_dividend_tvalid.s_axis_dividend_tdata(Ksum), // input wire [31 : 0] s_axis_dividend_tdata.m_axis_dout_tvalid(Kavg_valid), // output wire m_axis_dout_tvalid.m_axis_dout_tdata(Temp_Kavg) // output wire [55 : 0] m_axis_dout_tdata );//锁存Kavg always (posedge clk or posedge rst) beginif (rst 1b1) beginKavg d0;endelse if (Kavg_valid 1b1) begin//可以用这个信号来锁存KavgKavg Temp_Kavg[54:24];//截取输出的整数位end end/// //进行结果计算 //red_new的计算先算乘法再算除法 red_new (red*Kavg)/Ravg //3级流水线3个latency mult_gen_8xKavg redxKavg (.CLK(clk), // input wire CLK.A(red), // input wire [7 : 0] A.B(Kavg[10:0]), // input wire [10 : 0] B这里取11位主要是根据老师推荐的按道理是要去大一点但是大多少位并没有限制.P(temp_red) // output wire [18 : 0] P );/*************************************************/ /******************解决白线问题的方法**************/ /*************************************************/ //给hsync进行打拍操作。delay 3个 latency和上面乘法核的输出对齐 reg [2:0]hsync_dly; always (posedge clk) beginhsync_dly {hsync_dly[1:0],hsync}; end /*************************************************/ /*************************************************/div_gen_0 temp_red_div_Ravg (.aclk(clk), // input wire aclk.s_axis_divisor_tvalid(hsync_dly[2]), // input wire s_axis_divisor_tvalid.s_axis_divisor_tdata(Ravg), // input wire [7 : 0] s_axis_divisor_tdata.s_axis_dividend_tvalid(hsync_dly[2]), // input wire s_axis_dividend_tvalid.s_axis_dividend_tdata(temp_red), // input wire [23 : 0] s_axis_dividend_tdata.m_axis_dout_tvalid(temp_fra_hsy), // output wire m_axis_dout_tvalid.m_axis_dout_tdata(temp_red_new) // output wire [31 : 0] m_axis_dout_tdata [26:8] ); //red进行判断 always (posedge clk or posedge rst) beginif (rst 1b1) beginred_new d0;endelse if (temp_red_new[26:8] d255) beginred_new d255;endelse beginred_new temp_red_new[15:8];//有效值肯定在这个八位区间end end//green_new mult_gen_8xKavg greenxKavg (.CLK(clk), // input wire CLK.A(green), // input wire [7 : 0] A.B(Kavg[10:0]), // input wire [10 : 0] B.P(temp_green) // output wire [18 : 0] P );div_gen_0 temp_green_div_Gavg (.aclk(clk), // input wire aclk.s_axis_divisor_tvalid(hsync_dly[2]), // input wire s_axis_divisor_tvalid.s_axis_divisor_tdata(Gavg), // input wire [7 : 0] s_axis_divisor_tdata.s_axis_dividend_tvalid(hsync_dly[2]), // input wire s_axis_dividend_tvalid.s_axis_dividend_tdata(temp_green), // input wire [23 : 0] s_axis_dividend_tdata.m_axis_dout_tvalid(), // output wire m_axis_dout_tvalid.m_axis_dout_tdata(temp_green_new) // output wire [31 : 0] m_axis_dout_tdata );//进行判断 always (posedge clk or posedge rst) beginif (rst 1b1) begingreen_new d0;endelse if (temp_green_new[26:8] d255) begingreen_new d255;endelse begingreen_new temp_green_new[15:8];end end//blue_new mult_gen_8xKavg bluexKavg (.CLK(clk), // input wire CLK.A(blue), // input wire [7 : 0] A.B(Kavg[10:0]), // input wire [10 : 0] B.P(temp_blue) // output wire [18 : 0] P );div_gen_0 temp_blue_div_Bavg (.aclk(clk), // input wire aclk.s_axis_divisor_tvalid(hsync_dly[2]), // input wire s_axis_divisor_tvalid.s_axis_divisor_tdata(Bavg), // input wire [7 : 0] s_axis_divisor_tdata.s_axis_dividend_tvalid(hsync_dly[2]), // input wire s_axis_dividend_tvalid.s_axis_dividend_tdata(temp_blue), // input wire [23 : 0] s_axis_dividend_tdata.m_axis_dout_tvalid(), // output wire m_axis_dout_tvalid.m_axis_dout_tdata(temp_blue_new) // output wire [31 : 0] m_axis_dout_tdata );always (posedge clk or posedge rst) beginif (rst 1b1) beginblue_new d0;endelse if (temp_blue_new[26:8] d255) beginblue_new d255;endelse beginblue_new temp_blue_new[15:8];end end//不是数据没有对齐的问题 always (posedge clk) beginfra_hsy temp_fra_hsy; end//fra_vsy可以随便一个 assign fra_vsy vsync_dly[1];endmodule 第三部分、实现结果 1、白平衡前后对比 没有白平衡之前CMOS采集到的图像偏绿白平衡之后效果就好多了 CMOS摄像头图像白平衡之前和白平衡之后的效果 2、总结 这篇主要是总结了一下白平衡算法的原理的实现方法我上面的Verilog 代码大家只需要看明白就可以移植了。 QQ交流群聊号码1020775171有疑问的小伙伴可以加入哦 本专栏有很多我个人总结的比较好的文章希望对你开发有帮助FPGA的学习之旅_大屁桃的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密云网站开发网站开发外贸

本案例由京东云投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。随着数字化的进程&#…

4444k面访问升最新网站怎么做网页买东西链接

题外话: 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人,信不信未来的PI,了解一下,唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用,今天就放个静态爬取的实例让大家体验一下B…

飞沐网站建设公司wordpress登不进去

线性基 导入 线性基,顾名思义,就是一个包含数字最少的集合,使得原集合中的任何数都能用线性基中的元素表示。 集合中的元素满足一些性质: 原集合中的任意元素都可以用线性基中的若干元素的异或和表示线性基中任意数异或和不为…

做实验网站网站推广优化网址

一、h5ai 介绍 1.1)h5ai 简介 h5ai 是用于 HTTP Web 服务器的现代文件索引器,专注于您的文件。目录以吸引人的方式显示,浏览它们通过不同的视图、面包屑和树概述得到增强。最初 h5ai 是 HTML5 Apache Index 的首字母缩写,但现在它…

做网站如何选择数据源wordpress入门教程视频

前端框架的发展史是一个充满变革与创新的过程,其背后反映了互联网技术的快速发展和用户需求的日益复杂化。以下是对前端框架发展史的详细解析: 1. 古典时代与静态网页 在1990年代初,HTML被发明并开始广泛使用,这是前端开发的起点…

单位网站建设的优势做网站的时候怎么把图片往左移

目录 一,初识scrcpy 1.1 scrcpy介绍 1.2 scrcpy特点 二,scrcpy指令说明 2.1 画面设置 2.1.1 缩小分辨率 2.1.2 修改画面比特率 2.1.3 限制画面帧率 2.1.4 画面裁剪 2.1.5 锁定屏幕朝向 2.2 屏幕录制 2.3 连接方式 2.3.1 无线 2.3.2 多设备…

河源建设工程交易中心网站网络水果有哪些网站可以做

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

网站开发人员主要干什么的网站销售怎么推广

简介: 目前云效全家桶的功能相对来说比较适合个人开发或者中小团队的群体,如果你此时正在为搭建这类管理平台做选型,同时预算和人力都捉襟见肘,那么不妨试试云效这个产品!一起白嫖一起爽!尤其服务器资源在阿…

网站设计培训班前台在sae上搭建wordpress

一、英伟达 RTX 5090 与 RTX 4090 技术参数对比 1.1 核心架构与制程工艺 在探讨英伟达 RTX 4090 与 RTX 5090 的差异时,核心架构与制程工艺无疑是最为关键的基础要素,它们从根本上决定了两款显卡的性能上限与应用潜力。 1.1.1 核心架构差异 RTX 4090…

42区 网站开发指南wordpress怎么中文

核心提示:法宝”系统新增“多套法宝切换”功能。亲爱的玩家朋友:为保证服务器的运行稳定和服务质量,《梦幻西游2》所有服务器将于2015年8月4日上午8:00停机,进行每周例行的维护工作。预计维护时间为上午8:00~9:45。如果…

网站被k后换域名 做301之外_之前发的外链怎么办张家界网站建设多少钱

对标航空航天领域,核电新型号作为典型复杂系统在未来的发展趋势和任务变得十分明确,即正规化、标准化地应用MBSE从概念设计、初步设计、持续贯穿至详细设计、施工、调试、运维、退役的全生命周期各阶段,开发出符合核工业本身的需求&#xff0…

零食类营销网站怎么做app软件开发培训班

一、设置主体样式 默认的代码主题样式是黑暗系的,如下图所示: 如果你不喜欢,可以按照一下步骤进行修改: 左上角点击Flie->Settings->Appearance&Behavior->Appearance,点击Theme,在弹出的下拉…

长安区建设局官网站站网站备案 域名备案

Python算法题集_翻转二叉树 题226:翻转二叉树1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【DFS递归】2) 改进版一【BFS迭代,节点循环】3) 改进版二【BFS迭代,列表循环】 4. 最优算法 本文为Python算法题集…

澄海网站建设公司建设摩托车官网的网站首页

题干: 描述 N级阶梯,人可以一步走一级,也可以一步走两级,求人从阶梯底端走到顶端可以有多少种不同的走法。 输入 一个整数n,代表台阶的阶数。 输出 求人从阶梯底端走到顶端可以有多少种不同的走法,输出结…

建设网站怎么备案做ppt好用的网站

1 实习 1.1 讲解一下curd启动器 1.2 数据同步的过程是怎么实现的,同步过程中的数据一致性怎么保证的 答:同步过程中会记录断点,表示每一批同步成功时的位置,如果对端出现问题,则下一次同步会继续从这个断点后开始同…

传统网站模版万网搜

所谓数字三角形模型,即是从数字三角形这一题衍生出来的 题目为经典题目,不再赘述,此笔记根据AcWing算法提高课来进行对数字三角形模型衍生例题的记录 题目关系如下(见AcWing里的AcSaber): AcWing.1015.摘…

揭阳网站建设揭阳易捷网站内容管理系统漏洞

本文内容 隐式数值转换显式数值转换 C# 提供了一组整型和浮点数值类型。 任何两种数值类型之间都可以进行隐式或显式转换。 必须使用强制转换表达式来执行显式转换。 1、隐式数值转换 下表显示内置数值类型之间的预定义隐式转换: From到sbyteshort、int、long、…

网站seo啥意思软件制作思维导图的优势

文章目录 前言一、功能展示上传功能点下载功能点效果展示 二、思路流程上传流程下载流程 三、代码示例四、疑问 前言 Amazon Simple Storage Service(S3),简单存储服务,是一个公开的云存储服务。Web应用程序开发人员可以使用它存…

成都微信网站设计耒阳网站建设

net user 是 Windows 操作系统自带的一个命令行工具,用于管理和查询本地用户账户信息。在域环境中,它可以用于管理本地用户账户,但对域用户账户的操作能力有限,尤其是查看域账户锁定状态等功能。以下是 net user 命令的详解&#…

32岁学做网站有关毕业设计的网站

您所在位置:网站首页 > 海量文档&nbsp>&nbsp高等教育&nbsp>&nbsp科普读物使用隐马尔可夫模型的运动笔迹手势识别.doc10页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性…