<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[snjdju的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/snjdju</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; snjdju]]></copyright><item><title><![CDATA[开源图像处理算子工具]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/122917857</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/122917857</guid><author>snjdju</author><pubDate>Mon, 14 Feb 2022 09:18:22 +0800</pubDate><description><![CDATA[做工业视觉检测AI项目的时候经常会遇到一些传统图像预处理。从网上找相关的算法编写一个测试用例感觉很麻烦。计划动手做一个图像算子的小工具。
]]></description><category></category></item><item><title><![CDATA[FPC/FPCA柔性线路深度学习检测]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/118567884</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/118567884</guid><author>snjdju</author><pubDate>Thu, 08 Jul 2021 10:26:43 +0800</pubDate><description><![CDATA[最近公司交付了一个中航FPC/FPCA的项目，产品参考：



这里做个简单总结

客户需求分为两部分，第一部分是产品功能性外观检测需求：如鼓包、连桥、断栅、划痕、针孔、焊盘脱落等检测；第二部分是产品完整外观检测需求：如丝印破损、脏物等检测。

其中鼓包缺陷使用了多种打光方案、传统算法和深度学习结合方式。

漏检率为0%，过杀率为1.5%(鼓包要求严格)


...]]></description><category></category></item><item><title><![CDATA[dxf文件解析]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/111884265</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/111884265</guid><author>snjdju</author><pubDate>Tue, 29 Dec 2020 11:01:23 +0800</pubDate><description><![CDATA[最近做一个玻璃项目的视觉检测，需要根据dxf文件得出待检测玻璃的所有信息。计划一周时间将dxf文件解析转化为bmp图像和检测数据。暂时只做dxf文件解析和工艺封装，2021年6月份将dxf做进一步封装。

dxf文件解析主要是表段中的层信息、块段时相关的块信息(线型、颜色等），实体段中要具体要显示的实体。

解析完成后要对要显示的实体进行工艺封装，根据玻璃生产工艺进孔、槽等进行处理最后生成可以使用的数据。

这部分的解析工作计划一周完成
...]]></description><category></category></item><item><title><![CDATA[光学检测思路]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/105781937</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/105781937</guid><author>snjdju</author><pubDate>Mon, 27 Apr 2020 07:36:53 +0800</pubDate><description><![CDATA[最近项目在做aoi，现在这类项目已经很成熟了，自己学习了一下有个简单的思路。
原则是所有的目标图像像素点都是缺陷点。
通过计算将所有像素点进行分类，确认像素点所属集。
1.目标图像的预处理：几何处理（旋转平移），图像的特征点提取（轮廓点），图像的特征划分。
2.图像矫正及增强，得到修正后的模板图像。
3.进行图像像素的比较计算，分类，得到异常点。
4.确认所有点的所属集。

...]]></description><category></category></item><item><title><![CDATA[2020-04-27]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/105781927</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/105781927</guid><author>snjdju</author><pubDate>Mon, 27 Apr 2020 07:27:29 +0800</pubDate><description><![CDATA[算法提速无外乎空间换时间。在进行rgb计算时可考虑讲计算结果保存为3*256的三维数组，直接取结果，减少加减等计算

]]></description><category></category></item><item><title><![CDATA[ccd相机图像处理思考]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/105249397</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/105249397</guid><author>snjdju</author><pubDate>Wed, 01 Apr 2020 16:48:57 +0800</pubDate><description><![CDATA[最近休息在家思考之前工作时的几个问题。
1.ccd相机扫描时是基于相机坐标的，在行扫描是行偏移应该是整行出现偏差的，当然也存在行对位错误的概率，可以忽略不计。那么相机Y坐标的可以看成是对位正确的。
2.相机的拍摄物宽的误差和相机焦距和拍摄物与相机坐标原点距离有关。在处理倾斜度的同时可以处理相机x坐标的误差。

...]]></description><category></category></item><item><title><![CDATA[javascript控制treeview]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5877158</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5877158</guid><author>snjdju</author><pubDate>Sat, 11 Sep 2010 09:21:00 +0800</pubDate><description><![CDATA[<br />1.设置所选节点，如选中第二个节点<br />function SetSelNode()<br />{<br /> TreeView1.selectedNodeIndex="1";<br />} <br />2.得到所选节点的Text，ID或NodeData<br />function GetAttribute()<br />{<br /> alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"))]]></description><category></category></item><item><title><![CDATA[asp.net中gridview中数据保存为cvs格式，datatable中  ]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5868516</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5868516</guid><author>snjdju</author><pubDate>Tue, 07 Sep 2010 14:31:00 +0800</pubDate><description><![CDATA[<br />跳出路径选择框后将datatable中数据保存到用户指定路径：<br />private void ExportTableToExcel(DataTable dt, string FileName)<br /> {<br /> string title = "";<br /> for (int i = 0; i < dt.Columns.Count; i++)<br /> {<br /><br /> title += dt.Columns[i].ColumnName ]]></description><category></category></item><item><title><![CDATA[GridView中合并重复值]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5857300</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5857300</guid><author>snjdju</author><pubDate>Thu, 02 Sep 2010 09:31:00 +0800</pubDate><description><![CDATA[http://www.codeproject.com/KB/webforms/MergeGridViewCells.aspxpublic class GridDecorator{    public static void MergeRows(GridView gridView)    {        for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)        {            GridViewRow]]></description><category></category></item><item><title><![CDATA[ASP.NET 2.0中合并GridView的表头单元格]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5857289</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5857289</guid><author>snjdju</author><pubDate>Thu, 02 Sep 2010 09:28:00 +0800</pubDate><description><![CDATA[<br />ASP.NET 2.0中合并 GridView 的表头单元格<br />在实际工作中，<br />往往需要合并表格头部的单元格，<br />下面就是一个实现的例子。<br />运行结果如图：<br /><br />c# <br /><%...@ Page Language="C#" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<br /> "http://www.w3]]></description><category></category></item><item><title><![CDATA[数据源为空时让GridView显示表头和提示]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5857184</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5857184</guid><author>snjdju</author><pubDate>Thu, 02 Sep 2010 08:44:00 +0800</pubDate><description><![CDATA[<br />asp.net 2.0中使用的GridView控件，在其源为空时默认表头不显示。我们这里想要实现的是，通过扩展GridView控件、继承GridVie、重写Render方法来实现在源为空时显示表头并提示源为空：<br />/// summary <br />/// GridView 扩展控件 <br />/// @author:jianyi0115@163.com <br />/// /summary <br />public class GridView : System.Web.UI.Web]]></description><category></category></item><item><title><![CDATA[ javascript画图并记录坐标点]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5848780</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5848780</guid><author>snjdju</author><pubDate>Mon, 30 Aug 2010 08:15:00 +0800</pubDate><description><![CDATA[<br /> ajax想必程序员们都听说过，这个技术就是为了缓和服务器端压力和前台展示而推出的技术，实际上就是javascript和xml（DOM）组成的一个以浏览器为载体的前端客户端结构，他脱离了远程数据交互，减轻了频繁访问数据库并加强了，浏览器的能力在图形展示界面操作文件控制，都提供了很多支持，相信了解他的人都会非常喜欢他，有些人甚至认为，使用了这种技术可以使我们从复杂的mvc开发模式还原成客户端-服务器模式，所有业务逻辑全部都有前台处理。<br />     好了废话我就不多说了，下面的代码是我做项目]]></description><category></category></item><item><title><![CDATA[asp.net动态设置CSS等]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5848774</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5848774</guid><author>snjdju</author><pubDate>Mon, 30 Aug 2010 07:59:00 +0800</pubDate><description><![CDATA[<br />首先是后台给前台设置Style属性，设置控件坐标 <br /><br />前台控件： <br />Html代码 <asp:Label ID = "lblDSRText" Text = "当事人" runat = "server" name="label" Style="left: 300px; position: absolute;top:200px" BackColor="silver" ></asp:Label>  <asp:Label ID = "lblDSRText" Text = "当]]></description><category></category></item><item><title><![CDATA[【转】 JS调用后台带参数的方法]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5842425</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5842425</guid><author>snjdju</author><pubDate>Fri, 27 Aug 2010 08:40:00 +0800</pubDate><description><![CDATA[2010-08-15 22:03转载自 漂渺巅峰最终编辑 漂渺巅峰对于前台调用后台的方法，我们想到最多的就是用AJAX，这个是毋庸置疑的， 我就不再这里多说了。我今天主要想说的是用JS调用后台的方法。<br />对于后台往前台传值，用这种<%= nameValue%> 方法，我们是在熟悉不过了，由此，我们是否可以用同样的办法达到传值方法返回值的效果呢？<br />我在这个项目中最先想到的就是尝试这种(因为这个项目用到了VML，用AJAX以前是不行，不过，后来测试还是没有问题，不过，需要把xmlns=http]]></description><category></category></item><item><title><![CDATA[  C#代码与javaScript函数的相互调用 ]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5841079</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5841079</guid><author>snjdju</author><pubDate>Thu, 26 Aug 2010 16:08:00 +0800</pubDate><description><![CDATA[<br /> 我们通过问答的方式来为大家解答C#与JAVASCRIPT函数的相互调用： <br />1.如何在JavaScript访问C#函数? <br />2.如何在JavaScript访问C#变量? <br />3.如何在C#中访问JavaScript的已有变量? <br />4.如何在C#中访问JavaScript函数? <br />问题1答案如下： <br />javaScript函数中执行C#代码中的函数： <br />方法一：1、首先建立一个按钮，在后台将调用或处理的内容写入button_cli]]></description><category></category></item><item><title><![CDATA[动态创建弹出div]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5831449</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5831449</guid><author>snjdju</author><pubDate>Mon, 23 Aug 2010 11:40:00 +0800</pubDate><description><![CDATA[<br />动态创建弹出div <br />answer：形式如： <br />function createDiv(){ <br />var msgObj=document.createElement("div") <br />        msgObj.setAttribute("id","msgDiv"); <br />        msgObj.setAttribute("align","center"); <br />        msgObj.style.background="white]]></description><category></category></item><item><title><![CDATA[SendMessage、PostMessage原理]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5827849</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5827849</guid><author>snjdju</author><pubDate>Sat, 21 Aug 2010 01:12:00 +0800</pubDate><description><![CDATA[<br />本文讲解SendMessage、PostMessage两个函数的实现原理，分为三个步骤进行讲解，分别适合初级、中级、高级程序员进行理解，三个步骤分别为：<br />1、SendMessage、PostMessage的运行机制。<br />2、SendMessage、PostMessage的运行内幕。<br />3、SendMessage、PostMessage的内部实现。<br />注：理解这篇文章之前，必须先了解Windows的消息循环机制。<br /> <br />1、SendMessage]]></description><category></category></item><item><title><![CDATA[sendmessage and postmessage]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5827846</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5827846</guid><author>snjdju</author><pubDate>Sat, 21 Aug 2010 01:10:00 +0800</pubDate><description><![CDATA[PostMessage只负责将消息放到消息队列中，不确定何时及是否处理
    SendMessage要等到受到消息处理的返回码（DWord类型）后才继续
    PostMessage执行后马上返回
    SendMessage必须等到消息被处理后才会返回。]]></description><category></category></item><item><title><![CDATA[InitializeCriticalSection ]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5827823</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5827823</guid><author>snjdju</author><pubDate>Sat, 21 Aug 2010 00:50:00 +0800</pubDate><description><![CDATA[<br />Windows API函数声明 <br />　　VOID InitializeCriticalSection( <br />　　LPCRITICAL_SECTION lpCriticalSection // critical section <br />　　); <br />　　函数功能 <br />　　初始化一个临界资源对象 <br />　　参数说明 <br />　　lpCriticalSection 临界资源对象指针 <br />　　返回值 <br />　　没有 <br />　　备注: <b]]></description><category></category></item><item><title><![CDATA[用Win32 API实现串行通信]]></title><link>https://blog.youkuaiyun.com/snjdju/article/details/5827744</link><guid>https://blog.youkuaiyun.com/snjdju/article/details/5827744</guid><author>snjdju</author><pubDate>Fri, 20 Aug 2010 23:35:00 +0800</pubDate><description><![CDATA[串口是常用的计算机与外部串行设备之间的数据传输通道，由于串行通信方便易行，所以应用广泛。我们可以利用Windows API 提供的通信函数编写出高可移植性的串行通信程序。 在Win16中，可以利用OpenComm、CloseComm和WriteComm等函数打开、关闭和读写串口。但在Win32中，串口和其他通信设备均被作为文件处理，串口的打开、关闭和读写等操作所用的API函数与操作文件的函数相同。可通过CreateFile函数打开串口，通过CloseFile函数关闭串口，通过CommProp、DCB结构、G]]></description><category></category></item></channel></rss>