• COSPLAY 3D 建模
  • #maker+t=market
  • 3D列印服務
  • 1
  • 2
  • 3

Python人工智慧圖控 - 研習交流廳 造訪社團

原文網址 劉心一
2020-03-01 20:28:26

請問有水路1對3 或2 的3通閥型號嗎? 電控的. 謝謝

柯南
2020-03-01 23:00:49

電磁閥 + 三通接頭 = 不知道能不能滿足你的1對3

柯南
2020-03-01 23:01:41

1.你要先決定你流量要多大,幾分口徑。

柯南
2020-03-01 23:02:24

2.你要決定你的電壓。 交流110V 或者 直流24DC

劉心一
2020-03-02 21:24:59

110.24 都可 3分管. 我不是水電的. 找不到型號. 請給我型號參考.


原文網址 石小川
2020-03-01 19:04:55

程式可控制的參數例如圖像尺寸(ROI)、拍照、曝光時間、GAMMA、對比差、亮度、自定義LUT、鏡頭翻轉、RGB顏色增益、飽和度、銳度、彩色轉黑白、色溫校正、反色、9組十字線位置和顏色、觸發模式、幀率控制,有附SDK及C#、C++ Builder、Delphi、labView、QT5、VB、VC等範例可參考,對於喜歡寫自動控制程式的人來說非常方便。

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

usingSystem.Runtime.InteropServices;

usingSystem.Threading;

usingCameraHandle = System.IntPtr;

usingCKSDK;

usingCKAPI = CKSDK.CKSDKAPI;

namespacePlayer

{

public partial class mainwindow: Form

{

# regionvariable

protectedCameraHandle m_hCamera = IntPtr.Zero; // 句柄

protectedThread m_CapThread;

protected boolm_bExit = false;

protected uintm_uWidth = 0;

protected uintm_uHeight = 0;

doublem_CapFrameRate = 0;

doublem_DisFrameRate = 0;

# endregion

public mainwindow()

{

InitializeComponent();

CameraRefresh();

}

public voidCaptureThreadFunction()

{

stImageInfo ImageInfo = newstImageInfo();

CameraSdkStatus status = CameraSdkStatus.CAMERA_STATUS_SUCCESS;

IntPtr pRGBFrame = IntPtr.Zero;

uintDispFrameNum = 0;

intFrameTimeCur = 0;

intFrameTimeLast = 0;

FrameStatistic curFS = newFrameStatistic();

FrameStatistic lastFS = newFrameStatistic();

IntPtr pbyBuffer = IntPtr.Zero;

uintdRGBBufLen = 0;

CameraHandle hBuf = IntPtr.Zero;

CKAPI.CameraPlay(m_hCamera);

while(!m_bExit)

{

CKAPI.CameraGetFrameStatistic(m_hCamera, outcurFS);

if(FrameTimeCur != 0)

{

FrameTimeCur = Environment.TickCount;

intdeltime = FrameTimeCur - FrameTimeLast;

if(1000 <= deltime)

{

m_CapFrameRate = (double)(((double)curFS.iCapture - (double)lastFS.iCapture) * 1000.0) / deltime;

m_DisFrameRate = (double)DispFrameNum * 1000.0 / deltime;

lastFS = curFS;

FrameTimeLast = FrameTimeCur;

DispFrameNum = 0;

}

}

else

{

FrameTimeCur = Environment.TickCount;

FrameTimeLast = FrameTimeCur;

lastFS = curFS;

}

//获取 RAW 数据

status = CKAPI.CameraGetRawImageBuffer(m_hCamera, refhBuf, 1000);

if(status != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

{

Thread.Sleep(5);

continue;

}

//获得图像缓冲区地址

pbyBuffer = CKAPI.CameraGetImageInfo(m_hCamera, hBuf, refImageInfo);

//获得经 ISP 处理的 RGB 数据

//////////////////////////////////

if(dRGBBufLen < (ImageInfo.iWidth * ImageInfo.iHeight * 4))

{

dRGBBufLen = (ImageInfo.iWidth * ImageInfo.iHeight * 4);

pRGBFrame = Marshal.AllocHGlobal(Convert.ToInt32(dRGBBufLen));

}

m_uWidth = ImageInfo.iWidth;

m_uHeight = ImageInfo.iHeight;

CKAPI.CameraGetOutImageBuffer(m_hCamera, refImageInfo, pbyBuffer, pRGBFrame);

DispFrameNum++;

//////////////////////////////////显示

CKAPI.CameraDisplay(m_hCamera, pRGBFrame, refImageInfo);

//释放由 CameraGetRawImageBuffer 获得的缓冲区

CKAPI.CameraReleaseFrameHandle(m_hCamera, hBuf);

}

CKAPI.CameraPause(m_hCamera);

}

private voidCameraRefresh()

{

// 清空设备combobox

this.comboBox_DeviceList.Items.Clear();

CameraSdkStatus status;

//tSdkCameraDevInfo[] tCameraDevInfoList;

intdevNum = 0;

status = CKAPI.CameraEnumerateDevice(refdevNum);

if(status != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

return;

for(inti = 0; i < devNum; i++)

{

tDevEnumInfo devAllInfo;

// 获取设备信息

status = CKAPI.CameraGetEnumIndexInfo(i, outdevAllInfo);

if(status != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

continue;

// 将设备昵称增加到combobox控件中。

this.comboBox_DeviceList.Items.Add(new string(devAllInfo.DevAttribute.acFriendlyName));

}

if(devNum > 0)

this.comboBox_DeviceList.SelectedIndex = 0;

}

private voidCameraSetting()

{

if(m_hCamera != IntPtr.Zero)

{

if(CKAPI.CameraSetActivePage(m_hCamera, emSettingPage.SETTING_PAGE_ALL, 0) != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

return;

if(CKAPI.CameraCreateSettingPageEx(m_hCamera) != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

return;

CKAPI.CameraShowSettingPage(m_hCamera, 1);

}

}

private boolCameraPlay()

{

// 先停止当前的播放,然后再打开新的播放设备

CameraStop();

intindex = this.comboBox_DeviceList.SelectedIndex;

if(index < 0)

return false;

// 初始化设备,返回设备句柄

CameraSdkStatus status = CKAPI.CameraInit(refm_hCamera, index);

if(status != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

{

m_hCamera = IntPtr.Zero;

return false;

}

// 初始化播放显示,设置显示图像的控件句柄

status = CKAPI.CameraDisplayInit(m_hCamera, this.pictureBox.Handle);

if(status != CameraSdkStatus.CAMERA_STATUS_SUCCESS)

{

CKAPI.CameraUnInit(m_hCamera);

m_hCamera = IntPtr.Zero;

return false;

}

// 新建视频播放线程

m_bExit = false;

m_CapThread = newThread(newThreadStart(CaptureThreadFunction));

m_CapThread.Start();

return true;

}

private voidCameraStop()

{

// 先关闭线程

if(m_CapThread != null)

{

m_bExit = true;

while(m_CapThread.IsAlive)

Thread.Sleep(10);

m_CapThread = null;

}

// 关闭相机句柄

if(m_hCamera != IntPtr.Zero)

{

CKAPI.CameraUnInit(m_hCamera);

m_hCamera = IntPtr.Zero;

}

}

private voidbutton_Refresh_Click(objectsender, EventArgs e)

{

CameraRefresh();

}

private voidbutton_PlayOrStop_Click(objectsender, EventArgs e)

{

if(this.button_PlayOrStop.Text == "Play")

{

if(CameraPlay())

{

this.button_PlayOrStop.Text = "Stop";

this.button_Setting.Enabled = true;

this.timer_DevInfo.Start();

}

}

else

{

CameraStop();

this.button_PlayOrStop.Text = "Play";

this.button_Setting.Enabled = false;

this.timer_DevInfo.Stop();

}

}

private voidbutton_Setting_Click(objectsender, EventArgs e)

{

CameraSetting();

}

private voidtimer_DevInfo_Tick(objectsender, EventArgs e)

{

this.label_DevInfo.Text = string.Format("resolution: {0} x {1} | capture frame rate: {2:###.##} | display frame rate: {3:###.##}",

m_uWidth, m_uHeight, m_CapFrameRate, m_DisFrameRate);

}

private voidForm1_FormClosing(objectsender, FormClosingEventArgs e)

{

CameraStop();

}

}

}

翻譯年糕


原文網址 洪馬汀
2020-03-01 16:47:18

感謝加入


原文網址 石小川
2020-03-01 16:03:28

末日機瘟,倉庫留下一大堆飛機零組件,平常又閒不住就喜歡DIY,只好用這些零件組裝 "小小好奇號",因為要給客戶Demo ROS軟硬體,不能飛就換地上爬,反正原理一樣。動力方面本來要四輪無刷直驅,但手邊沒有這些零件,暫時用皮帶輪減速帶動輪軸,先拍照留下紀錄。


原文網址 蔡昇祐
2020-02-29 08:49:30

【文組工程師的轉職心路歷程分享】
#從國際關係轉跳軟體世界 (1/4)
應該很多人跟我一樣,在職場上碰壁了一陣子。可能原本產業的天花板很低,或是對於自己是否具有專業能力感到不安。抱著砍掉重練的決心與些許對未來的不安,我辭去了當時的工作,報名了資策會的Java班,從此開啟了......
閱讀全文: https://bre.is/njvzojQB
#我轉職我驕傲
#沒有無痛轉職這件事
#成為軟體工程師的兩大必備能力


原文網址 石小川
2020-02-28 14:41:43

相機標定可取得內、外參數, 可用來校準相機,這個參數在相機量測目標物尺寸及距離時非常重要。再找時間說明原理。

內參(intrinstic parameters)與相機內部結構有關,如焦距、透鏡畸變、像素間距、中心點座標等。

外參表示相機在世界座標系中的3D位置。

p.s. 標定板大小及行列數目需輸入正確, 可視範圍約1/4大小。約擷取10張不同位置的標定位置, 圖三是校準前有徑向及切向畸變, 圖四是校準後。

鍾小生
2020-02-28 22:38:25

請問需要用特定的相機嗎?這課程會開課嗎?

石小川
2020-02-28 23:11:04

只要能取得影像的相機都適用。
雖然這很重要, 但這麼冷門的課大概只有老弟會上, 約個時間來基隆泡茶我教你就好。

Allen Tzeng
2020-02-29 07:06:38

前陣子也在看相關理論,有寫下一些筆記

針孔相機模型

https://allen108108.github.io/....../%E9%87%9D%E5%AD......

Allen Tzeng
2020-02-29 07:07:00

Allen Tzeng
2020-02-29 07:07:12

不過還沒有時間時做看看就是了XDDDD

石小川
2020-02-29 13:14:01

看了你的筆記很詳細, 歡迎在這裡多發表, 之前我是用C#寫的, 一直想改成Python版本, 期待你用Python 實作發表


原文網址 石小川
2020-02-27 09:48:13

ROS 是機器人作業系統(Robot Operating System)的縮寫,ROS從2007發展至今已開始茁壯,目前很多機器人公司將旗下產品移植至ROS上,預見將來機器人工程師一定要會ROS技能。

ROS內建很多演算法如SLAM (Simultaneous Localization and Mapping)及 AMCL(Adaptive Monte Carlo Localization),以及包含很多軟體驅動接口很容易串接光學雷達、感測器、影像辨識、Arduino、Raspberry Pi、IO模組、運動卡等硬體元件,對建構自主導航機器人幫助很大,

下面連結網址是ROS安裝的方法及下載,有Windows和Ubuntu版本,對機器自動化有興趣的朋友可參考看看。

在Windows系统安装ROS 機器人作業系統 :
https://blog.csdn.net/ZhangRelay/article/details/82899582

在Linux系统安装ROS 機器人作業系統
https://makerpro.cc/2018/12/ros-setup-tutorial/

ROS.org :
http://wiki.ros.org/ROS/Installation

曾希哲
2020-02-27 10:06:09

ROS是現在進行式了

Chen Sheng Shou
2020-02-27 10:17:51

謝謝

Allen Tzeng
2020-02-27 10:43:28

最近剛接觸SLAM,想要實現卻不知如何下手


原文網址 蔡昇祐
2020-02-26 18:48:03

我在 Hahow 好學校 平台上開設了「Docker 部署入門完全指南-圖片速學攻略」!

課程網址: https://hahow.in/cr/docker-picture

在我自學的經驗中發現,線上 Docker 學習資源多為投影片與文字形式,常常一個簡單的觀念卻要大量的文字來說明,不僅耗時也造成學習效果低落。

這個課程,將透過簡單的架構圖,讓大家可以更直觀得了解 Docker 的運作方式,提升學習效率、加深長期記憶。

------------------------------------------------------

臉書專頁(每月不時有折價券活動):

https://bre.is/7wfnAuvr

# docker # kubernetes # devops # hahow # sre


原文網址 石小川
2020-02-26 10:00:41

光騰書齋三月份課程開始報名
持續招生中...........,隨時歡迎報名!
課程: Python CNC軸控軟/硬體設計班 課程內容: *CNC 軸控平台基本知識 *CNC 軸控平台電路、電機組裝 *Python 軸控軟體開發平台建立 *Python呼叫動態連結庫(DLL)控制步進馬達 及 I/O Port *剖析motion.py程式如何控制CNC雷射機台 此次開課目的是想引導有Python(或C#)基礎的朋友進入軟/硬體設計有趣的領域,學習後學員可自行用Python控制運動卡, 開發自動控制相關應用程式APP或CNC機台, 學員學習期間對軟/硬體設計方面有問題也可用Messenger或Email 聯繫我, 可線上指導。
此次開課也是採用遠距指導教學,上課方式以講義內容為主,採用一個月彈性遠距師徒制一對一教學,主要以messenger通信軟體互相聯繫,會按照進度傳指導教學資料給學員,學員不受時間限制,隨時可發問,老師會撥空回答問題。
p.s. 前一梯次沒上過的同學請把握這一次了。
開始上課日期: 2020/3/5(星期四) 註 . 確定要來上課的朋友請在此留言報名(B+),會用messenger主動聯絡您匯款,金額酌收NT$3500,並傳Quantum講義及程式給您。 Python人工智慧圖控 - 研習交流廳 : https://www.facebook.com/groups/523498395047153/?ref=bookmarks

Robert Chen
2020-02-26 12:06:49

教授,請問會組硬體嗎?

Robert Chen
2020-02-26 15:36:52

請問教授,會開G code転cnc程式及飛刀課?

Wilson Kao
2020-02-26 15:59:13

有人有紡織業瑕疵檢測紡織的經驗嗎? 謝謝

Robert Chen
2020-02-26 18:18:29

感謝教授

Claude Hsu
2020-02-27 17:27:48

請問要報名是留(B+)嗎?謝謝

Mini Lai
2020-02-27 18:59:03

B+

郭耀中
2020-03-02 11:31:47

B+

Cian Cheng
2020-03-03 09:05:23

帳號多少?可以利用晚上嗎?

Cian Cheng
2020-03-03 13:11:05

+1


原文網址 石小川
2020-02-23 12:27:14

今天介紹這一本書,適合給對機器視覺、自動駕駛、無人機、機器人、ROS(機器人作業系統)有強烈研究動機的朋友當作入門參考。

SLAM是Simultaneous Localization and Mapping 的縮寫,中文翻譯為同時定位與地圖建構,通常搭載相機及光學雷達,於運動過程中即時建立週遭環境的模型,同時估算自己的運動軌跡方位。作者以Linux為開發環境,書中所有程式碼都放在GitHub上: https://github.com/gaoxiang12/slambook
可隨時查閱。

因為牽涉到數學中旋轉向量、四元數、歐拉角、李群李代數等,建議先複習上述數學及學過C Language 及 OpenCV的朋友研讀。


 

討論主題

發文排行榜

回文排行榜

熱門關鍵字