人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: awolfbee

開始設(shè)計(jì)一種大蒜播種機(jī)

[復(fù)制鏈接]
151#
 樓主| 發(fā)表于 2021-1-31 22:11:51 | 只看該作者
感覺按照蒜瓣這樣原始的狀態(tài)識別很麻煩,上周在工作的地方寫程序的時候就在考慮這個不一致性的問題,因?yàn)樗忸^碾碎成蒜瓣之后會存在很多蒜皮以及蒜根之類的不規(guī)則物品,對視覺識別會造成很大的干擾,這個可能要設(shè)計(jì)個設(shè)備,在把蒜瓣種子送入到鐘子箱之前就要預(yù)處理下,把從蒜瓣上剝離的蒜皮清理掉,把蒜根進(jìn)一步去除,要么就在識別時將無法識別的丟棄到廢料箱中,后期人工再處理。
152#
 樓主| 發(fā)表于 2021-2-2 22:27:15 | 只看該作者
0 t8 J4 s7 z8 U. B! Q/ [0 P7 {! r
通過視覺軟件各種算法,取出蒜瓣的外形圖,現(xiàn)在就是要對這個外形圖進(jìn)行處理,得出頭尾的結(jié)論。貌似這個也簡單,因?yàn)槎紟в袀€小尾巴,但是我把外面的蒜皮剝掉之后是怎樣的呢?下面開始剝皮。
) v! a5 }! P) g7 E1 y0 H- q9 f+ E3 @
其中的小點(diǎn)應(yīng)該是灰塵,可以在計(jì)算過程中把面積小于多少的點(diǎn)排除,這樣就可以得出蒜瓣的凈輪廓圖像。6 L- u5 w/ |- C2 p8 w

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
153#
 樓主| 發(fā)表于 2021-2-2 22:32:31 | 只看該作者
- f  v& [1 U4 C9 o( z# M+ D4 r
剝掉蒜皮后的輪廓圖。最后一副圖樣有點(diǎn)奇怪,生成的輪廓曲線連貫且平滑,也就是重新生成了下然后就變成這樣了,不知道程序上有哪些變動。
0 C) B6 M) J" v$ W  ?* B

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×

點(diǎn)評

這一次購買的大蒜品種有點(diǎn)奇怪,蒜瓣都是鼓肚子的,不像之前購買的那種,輪廓圖都是和月牙一樣??磥磉@個蒜的種類是很講究的,要注意了。  發(fā)表于 2021-2-2 22:37
肉眼能看得出哪邊是蒜尾,哪邊是蒜尖嗎?如果人眼都分辨不出來的話,機(jī)器估計(jì)也無能為力了。  發(fā)表于 2021-2-2 22:36
154#
 樓主| 發(fā)表于 2021-2-2 22:39:23 | 只看該作者
程序如下:
! [! {' m! R4 l0 \) v) f
! J3 Q% `& K" y0 B5 W/ s操作系統(tǒng): win7 64位1 K, p7 b# Q, R9 i; i4 T" l
IDE:VC++2010旗艦版
- t' O" V! F4 \$ Z0 ]9 j8 y. g視覺軟件: OPENCV 3.0
# @( K( G1 E6 h' j: @/ b
3 v+ a. y8 c1 ^$ S9 n4 B/ o- @" B0 m0 r4 T: _$ p$ E. o. c
//#include "stdafx.h", B8 [- l4 ]/ u. g9 Q% ]
#include "core/core.hpp"
5 A: t8 a- d* J+ }1 J) C#include <opencv2/imgproc/imgproc.hpp>
" C8 k' j0 {* ]9 [* [#include <opencv2/highgui/highgui.hpp>+ x& H0 ^1 M7 C& |9 [! @: `8 @! e* r
#include <iostream>/ l) o5 b5 t7 M! q! q; s
#include "highgui.h"5 ?+ q/ ?, a: U; @+ D, ~4 X, n1 K7 r: ?
#include <set>2 A# h3 o8 n9 I/ a$ V$ l
#include <opencv2\opencv.hpp>; R  }/ N* U. g$ u% s
#include<vector>     //包含所需要的類文件vector,還有一定要加上using namespace std。
! ^1 ?7 G% H( i$ A3 c/ v- b#include <stdio.h>
3 e# P4 G/ B  z  I6 N#include <conio.h>
8 G7 A$ C& C+ \; J5 S( J#include <opencv2/highgui/highgui_c.h>$ S% L9 d+ L. N$ }3 e
#include <math.h>
9 D% K9 e$ T. D  o0 z% f, ?#include "iostream"
0 N0 V: O$ v& }$ }#include "cv.h"/ U6 M2 G; A7 \
#include "highgui.h"
$ z6 j5 J* f) p$ Z" E0 pusing namespace std;
+ q2 j" R8 D4 I9 A8 tusing namespace cv;
4 V* ~5 T  j7 a2 [, `- V+ Z! n& B% k& U5 K! l( [  y. b
! @! G5 g; R9 W

1 z  H2 |7 c' k//-----------------------------------【main( )函數(shù)】--------------------------------------------
# s  i" V3 A! d: @. l//     描述:控制臺應(yīng)用程序的入口函數(shù),我們的程序從這里開始0 W* _1 ~" G+ B9 A) b
//-------------------------------------------------------------------------------------------------" u( \+ [5 A7 F3 b! L

/ o* b+ d: S2 v6 p9 lint main()
' l7 A! g" q- {3 K' r' B& J9 x
9 E0 w6 k( {# K  G1 F9 H{; {  K  j# [/ a# r
int chufa=1;
; T8 H) _- B2 T    //【1】從攝像頭讀入視頻# r  B- V* x; J. N( c

0 z. m0 O% Z4 }9 {    VideoCapture capture(0);
7 P: U, J% U* G, {
* o. l$ c; L; C* p    Mat edges;   //定義類! Z' x4 g7 W# G

8 ^2 f9 P: ]: A. i# y/ NnamedWindow("預(yù)處理后的視頻", 0);
* Y, b& w% d# _, ~
: k3 R( }# }) G. g4 g //   Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項(xiàng)至于循環(huán)之外,不要重復(fù)定義Mat,增快速度;
1 m: X5 E4 z! D9 u; B. V
8 P6 z7 A5 V$ g//定義輪廓和層次結(jié)構(gòu)(這個不是很理解)% g* [' r$ b8 U  Q7 u$ b* n) g, s( f

9 ?5 c# R0 N) n$ n: h6 b//vector<vector<Point>>contours;  //其中contours 應(yīng)該是一個變量,可以用在后面的輪廓查找的函數(shù)中,定義點(diǎn)的向量
  R$ S4 Z/ D, S4 U( j
+ C8 T* E1 U# y2 F5 |! u//vector<Vec4i>hierarchy;    //定義四維向量???
- [& f& T: H# \( m% A$ A
  j5 E# a1 }6 R3 E! v) ]+ M//【2】循環(huán)顯示每一幀
, H5 ]% r! }, l- m0 W2 K' y/ ?2 m. x/ c, u6 ?5 X* y5 V9 h
    while (1)
* s6 R7 O, J# ^3 j, ?3 P5 L1 a/ C( _7 c1 o
    {% d' R3 k& m, }( B% Q6 P

; f. Y" Y0 h, \# f6 }* }        //讀入圖像4 o4 t$ F7 E- F5 q! N$ n% @
+ Z1 y4 A5 o7 |. i& m% @- Z( x! R
           Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項(xiàng)至于循環(huán)之外,不要重復(fù)定義Mat,增快速度;2 z4 B0 }/ R9 X: c. E+ u& q
/ w: q8 G, z1 J& M" s" V
           if (chufa=1) //當(dāng)取樣信號為1時,開始取當(dāng)前幀,然后進(jìn)行識別
" r& Y; q+ C6 D4 U+ I
; h' @0 K# b# K- ?3 a3 v$ _                        {
/ j: f/ g/ w7 T- f, u' e9 b
8 z5 e! O2 Q1 ?/ `, X                          capture >> frame;                                              //讀取當(dāng)前幀,videocapture函數(shù)是不斷讀取外界的視頻,需要一個類來讀取當(dāng)前幀,
* q: E) D8 G% e" s3 G+ U                                                  chufa=0;
6 l6 J5 W5 v9 z: L1 z8 e0 j
* G- Y$ {5 E* c" j; s                                                                                                  //對于只需要一副圖片來進(jìn)行檢測的操作來說,每個循環(huán)只要出發(fā)某個取樣信號,取樣一次就好了。因此用IF語句1 N% d, I% ~" b8 H

4 ^8 u' `4 I# u                           cvtColor(frame, edges, CV_BGR2GRAY);      //灰度化  --如果說需要使用顏色檢測蒜瓣的底部和頭部,可能還需要顏色來判斷
- r: {/ p3 T9 @1 h6 i9 G7 ~( u( a7 U& t
                          threshold(edges, edges, 120, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);         //二值化,將其變成黑白兩色的圖樣7 p$ z2 x6 `. N  G5 s; F
- K4 @# ^) V& P- p
                          blur(edges, edges, Size(3, 3));                           //進(jìn)行模糊,使用3*3內(nèi)核來降噪9 K, n$ r. S4 F* s9 n- @
- _. G+ @1 ~- D  N9 a5 }" {
                         Canny(edges, edges, 0, 30, 3);                            //進(jìn)行canny邊緣檢測并顯示
1 v0 ^$ v8 J4 b  O2 ^) T; R! w! z' o8 L5 R) U. ^* E6 r& _
                       // findContours (edges, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);           //要求原圖像為8位單通道圖像;其中edges是源文件,contours是輪廓函數(shù)??* `3 Y# s! c& Y) f; x! e
# p& P& s5 D9 [+ U* N+ A
                                                                                                                                                                                      //CV_RETR_EXTERNAL,僅需要外側(cè)的輪廓用于識別,( J2 i6 T- r1 |- T0 }, b
8 N* P) Z; ?6 T5 j5 D8 F" I
                                                                                                                                                                                      //CV_CHAIN_APPROX_NONE,獲取每個輪廓的每個像素,最好是連續(xù)的,0 Z% ^, S/ B/ u8 [* c. d  h

9 M) Z$ L, u6 ~% k& a6 a' e2 @7 r                       }
+ Q4 \! i5 ?0 p# K
; X: _2 r) ]# B( z2 u+ O        imshow("蒜瓣輪廓圖", edges);                        //顯示當(dāng)前幀
; Z$ ~4 F/ |) c: A  x& o
! s8 o, E# v+ y! P        if (waitKey(30) >= 0)4 v3 y) S$ S; F& ~' C9 G) k0 g

2 i: v# H1 S/ S' ]            break;# x8 h4 O4 Q9 B) `
# h$ Y3 L& t- i$ R' z

, E* ^6 @) B1 `; T. f, d, {8 g
5 }( T( ?; ?# m5 T" M( H% w  g5 \    }
, e5 O, y% m" d. n- ^4 i1 \: g' T; Z' i6 {0 @* R+ a  ?  V  E* Y9 `) m
    return 0;/ B* _. @# m, Q

+ H+ e' N, s# M: h" N) t}
155#
 樓主| 發(fā)表于 2021-2-5 19:21:52 | 只看該作者
大白小白 發(fā)表于 2020-11-18 13:145 t3 F/ O5 X. ]! M
@awolfbee 蒜頭壓碎成蒜瓣,有視頻么?四處紛飛?能不能溫柔點(diǎn)?

2 ^4 |) a; H; L( X! V# vhttps://item.taobao.com/item.htm?spm=a230r.1.14.30.2220dd82nuirRU&id=626297555950&ns=1&abbucket=2#detail4 {0 J: W! O6 r+ V

9 B' O. `. U2 z! l這是大蒜分瓣機(jī)。
5 s5 d2 V' R1 l8 b
156#
 樓主| 發(fā)表于 2021-2-5 19:24:34 | 只看該作者
大白小白 發(fā)表于 2020-11-22 21:237 i# S4 j3 J1 {" d
在圖片上注釋,沒看懂啥意思

# i$ E& a/ e/ m8 Z, t
/ T) J, u3 s7 _+ i帶有塊狀的根部,大蒜剝好之后是沒有這個的。1 d+ l& k6 S5 `! B" j" o& _

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×

點(diǎn)評

這個根部如果剝離的話,在蒜瓣底部會形成一個火山口樣的形態(tài),如果能做激光三維,這倒是一個切入點(diǎn),關(guān)鍵是激光三維傳感器太貴了!??!一個十幾萬?。。?!加上他們給的程序就27萬!我想自己開發(fā)算了。  發(fā)表于 2021-2-5 22:55
157#
發(fā)表于 2021-2-5 19:29:10 | 只看該作者
awolfbee 發(fā)表于 2021-2-5 19:24
6 B2 }+ [# Z5 \. [3 B帶有塊狀的根部,大蒜剝好之后是沒有這個的。

1 w, V/ e# t2 w" A! V6 D3 _# {: d2 x: W老大放假了?& x% K$ u0 L$ j

點(diǎn)評

沒有,要到29才放假,放假也閑不著,孩子搶電腦看旺旺隊(duì),唉……  發(fā)表于 2021-2-5 22:53
158#
 樓主| 發(fā)表于 2021-2-11 00:34:34 | 只看該作者
今天,哦不, 是昨天開始放假,上午上班的時候看了一個關(guān)于單攝像頭加線狀激光發(fā)射器旋轉(zhuǎn)配合OPENCV形成立體圖的文章,對激光三維照相有了一點(diǎn)了解。之所以考慮這樣的方式,是因?yàn)檫@幾天一直在思考如何從大蒜的側(cè)面的形狀判斷哪邊是頭或者尾,問題在于誤判率太高。所以還是回到檢測頭和尾的形狀特征上來。之前考慮的是接觸式的檢測方式,當(dāng)時有考慮用點(diǎn)陣壓力傳感器測量蒜頭和蒜尾的接觸壓力,如果壓力是環(huán)形,則是尾(實(shí)際上也不一定,因?yàn)橛懈拇嬖诰蜁`判),如果壓力為點(diǎn)狀,則為蒜尖。但是從耐久性來考慮,還是非接觸式的為好,這樣看來,非激光立體照相不可了。
159#
 樓主| 發(fā)表于 2021-2-16 23:18:15 | 只看該作者
http://www.csksoft.net/blog/post/lowcost_3d_laser_ranger_1.html6 @3 x- a& f8 ^1 x( ~. K' h

7 X  Q4 N+ S) y/ z$ [這是一個激光三維成像的帖子,在其中得到不少啟發(fā)。
5 `1 Z0 U; ~) ?/ I1 S6 s" g
, F6 G& u. O( {如果能對蒜瓣的頭尾進(jìn)行三維掃描,獲得立體的圖像,則可以對圖像進(jìn)行分析,確定頭尾,這比用基恩士的要劃算多了,而且這個掃描面積很小,估計(jì)就是10*10個mm。
160#
 樓主| 發(fā)表于 2021-2-16 23:19:31 | 只看該作者
利用廢舊光驅(qū)上的鏡頭,在之前的攝像頭上增加一個透鏡,調(diào)節(jié)焦距,形成一個小的電子顯微鏡,這是大蒜的底部照片。
# d+ @% c6 A6 P+ U1 {* K+ x+ e/ \
1 l9 J( ^! V- F" F, Z( |7 j7 s) @8 |; h4 ?  i- W' b; v. g) s: w
這個嘛,猜猜?& b- @8 a/ ^/ {7 f$ T7 z

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

Archiver|手機(jī)版|小黑屋|機(jī)械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2025-7-8 08:42 , Processed in 0.084665 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表