久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: awolfbee

開始設計一種大蒜播種機

[復制鏈接]
151#
 樓主| 發表于 2021-2-2 22:32:31 | 只看該作者

* g' Y; l* ]" h4 |剝掉蒜皮后的輪廓圖。最后一副圖樣有點奇怪,生成的輪廓曲線連貫且平滑,也就是重新生成了下然后就變成這樣了,不知道程序上有哪些變動。
  Q: t! L9 K, d" z  N5 E

本帖子中包含更多資源

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

×

點評

這一次購買的大蒜品種有點奇怪,蒜瓣都是鼓肚子的,不像之前購買的那種,輪廓圖都是和月牙一樣。看來這個蒜的種類是很講究的,要注意了。  發表于 2021-2-2 22:37
肉眼能看得出哪邊是蒜尾,哪邊是蒜尖嗎?如果人眼都分辨不出來的話,機器估計也無能為力了。  發表于 2021-2-2 22:36
152#
 樓主| 發表于 2021-2-2 22:39:23 | 只看該作者
程序如下:) L9 W3 d$ f3 n9 o: D# @; a
. [$ L% b: o/ ?5 j# _
操作系統: win7 64位
# v- M7 z. j1 C7 s4 @' JIDE:VC++2010旗艦版% g4 j  o* m5 }8 D+ v
視覺軟件: OPENCV 3.0
/ E4 k) E! ?% A4 A' A7 C& l" Y
" |& X# t' N9 f/ ^) v& Z; u! ~- L" I( ]
//#include "stdafx.h"6 K: x) B0 X0 K6 `( Z+ v
#include "core/core.hpp"7 M% C( Z; d1 @; F2 |7 K
#include <opencv2/imgproc/imgproc.hpp>$ v0 T7 m# f) O+ w4 J3 L% u4 h
#include <opencv2/highgui/highgui.hpp>5 {- q  L0 }, O. y2 r7 C) Q4 s9 @9 V
#include <iostream>
$ V, y) Y& N; Z$ r, T% m% v#include "highgui.h"$ i7 ~" B* a3 ?/ r; A) B
#include <set>. p6 _4 n0 A' t( L
#include <opencv2\opencv.hpp>8 g, G6 d9 s% Y+ t- R# ~5 ^5 x: W, g
#include<vector>     //包含所需要的類文件vector,還有一定要加上using namespace std。
# e  C# J8 V! v% M8 ^5 H1 E) r#include <stdio.h>
  C4 q+ {9 x2 z#include <conio.h>- h& P3 M6 t5 O+ \/ Q9 ^
#include <opencv2/highgui/highgui_c.h>, }& l/ Q/ a8 G' @( G4 i8 K: D. F
#include <math.h>1 w5 I) K) ^2 H) \& X" P5 P0 K
#include "iostream"
$ z6 b% W$ a7 w+ x$ a#include "cv.h": q/ q  w9 v$ X9 V! J% N
#include "highgui.h"6 R7 |" p' Z4 ]% z
using namespace std;
* S( N# A; f" g. ausing namespace cv;0 B8 B! W$ V& _; p( J
9 G5 m$ P) b; e7 m
" F% {% h( G- u& e5 V$ t

0 f& v9 x; D" b; ?5 S//-----------------------------------【main( )函數】--------------------------------------------
' N* _7 C" X* @; y8 R3 j//     描述:控制臺應用程序的入口函數,我們的程序從這里開始' J- }6 ]2 W# [8 p4 o7 w
//-------------------------------------------------------------------------------------------------0 P7 f+ y& }1 g7 B
3 O  t) T( e' ]! H) `
int main()
2 M4 h- M! Q8 j) ?2 y9 E+ \% Q0 L% N" z9 w
{
( q- @' {3 m4 e8 E4 }& j2 Dint chufa=1;
  e, W! e+ k) {% t9 M, J2 F- \    //【1】從攝像頭讀入視頻
! J& ]) T& r  ?
! D' d1 }0 ^5 A; R5 T4 O. R( |    VideoCapture capture(0);
' t. U$ u; {8 n& }; c0 }' D' ~8 G/ {
    Mat edges;   //定義類
' l# F* H; n( \; ?, Y% ]2 i7 f+ y  v: {
namedWindow("預處理后的視頻", 0);  f$ C0 ^0 K) X& a( O8 ?" c3 E  u
. [7 `! e3 k' ~- J- x4 G6 f9 C
//   Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項至于循環之外,不要重復定義Mat,增快速度;
8 c3 X2 D* K* \7 ~- I) Z6 R: R) q+ ?% e$ O* U
//定義輪廓和層次結構(這個不是很理解)7 r1 O7 |# K4 z9 H* I2 \. I
# t  @/ C, }: @3 g1 u- G
//vector<vector<Point>>contours;  //其中contours 應該是一個變量,可以用在后面的輪廓查找的函數中,定義點的向量( ]' v  `. \" t
. d, I1 m* k3 n+ j& _  ~6 |
//vector<Vec4i>hierarchy;    //定義四維向量???. S4 E. \( b& z3 S
0 x3 {/ h1 t1 X* Z
//【2】循環顯示每一幀# q6 Z7 g4 O" |! r5 P! }
1 w' W" _  W7 s: W% ]6 ?7 o  |
    while (1)
5 ]+ q! [: P. z. k1 C. r, N  u8 u4 r3 y
    {
2 o) d( J. }. ~* w/ t9 e
* n% M4 h( Y& c% N( `! M; H( `        //讀入圖像
5 [, H. y+ l, `) |  j0 \% v- {6 P0 Z' o7 r
           Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項至于循環之外,不要重復定義Mat,增快速度;
' m1 f* Q: x0 Y2 G6 ?: e% e$ D) m" S8 J' Z. p
           if (chufa=1) //當取樣信號為1時,開始取當前幀,然后進行識別
; J  }/ ^0 J: c2 t% l0 m) V$ v
" R# B; Z8 x$ `                        {
4 p* {. K8 j/ i1 F' R. A% e9 S- a0 K2 c: @. Y8 N
                          capture >> frame;                                              //讀取當前幀,videocapture函數是不斷讀取外界的視頻,需要一個類來讀取當前幀,
# d( r8 b5 z+ {                                                  chufa=0;3 _, |' }; J) c1 h

2 t6 d8 {0 _4 J( a                                                                                                  //對于只需要一副圖片來進行檢測的操作來說,每個循環只要出發某個取樣信號,取樣一次就好了。因此用IF語句' y" l2 M1 k$ o! K. b( Q  z
5 X$ @* N9 i& f  {4 Z
                           cvtColor(frame, edges, CV_BGR2GRAY);      //灰度化  --如果說需要使用顏色檢測蒜瓣的底部和頭部,可能還需要顏色來判斷8 }; o1 N) |/ X7 L
7 b6 [3 u; t6 H( p
                          threshold(edges, edges, 120, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);         //二值化,將其變成黑白兩色的圖樣' D% g- |3 G, H* u

' U, o& C! _9 d                          blur(edges, edges, Size(3, 3));                           //進行模糊,使用3*3內核來降噪5 \, h9 _* d* `3 s1 j" n0 p" D0 D4 N

5 u) t. H1 p( M4 v/ V% g                         Canny(edges, edges, 0, 30, 3);                            //進行canny邊緣檢測并顯示+ K5 ?+ M0 b; f- k# Y. \

0 O) s5 p; W2 m. a$ b                       // findContours (edges, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);           //要求原圖像為8位單通道圖像;其中edges是源文件,contours是輪廓函數??) n& B0 }% e: O
2 @# e- V; l8 W; z# _
                                                                                                                                                                                      //CV_RETR_EXTERNAL,僅需要外側的輪廓用于識別,4 V* V; w2 w6 M4 k

" E" G& G$ L/ B                                                                                                                                                                                      //CV_CHAIN_APPROX_NONE,獲取每個輪廓的每個像素,最好是連續的,
- ?, v  O' C* E" F7 T8 l! s- U& ?8 T( a7 ]7 \& p
                       }% t8 U, W1 r4 F/ s3 L- o

) B$ A. {# g, ^        imshow("蒜瓣輪廓圖", edges);                        //顯示當前幀% P& `0 t8 d5 N+ i- b+ w

  K) r* e2 C/ x        if (waitKey(30) >= 0)
5 E1 E; D7 N# j3 b9 |  T" M6 ~/ O
7 K+ l& y# D: {5 H4 ~            break;
9 B) E: V6 M4 V3 H1 S; w) m  U! s! b" |+ {
/ x# U3 x2 ], p- G' f( l* A, E

7 J9 a  w2 r0 |7 F- f( n* O  L) i' G* g    }+ e  O- `) q. T" ?1 ~$ h: C1 ]3 m
! `, S/ \6 t" E  \! `9 B. M
    return 0;
, y" ^" }( |7 t
6 m& k. N! z& G}
153#
 樓主| 發表于 2021-2-5 19:21:52 | 只看該作者
大白小白 發表于 2020-11-18 13:14: N4 X! J. R1 g2 r- E1 h# m
@awolfbee 蒜頭壓碎成蒜瓣,有視頻么?四處紛飛?能不能溫柔點?

5 ~" P. M& V  u0 Dhttps://item.taobao.com/item.htm?spm=a230r.1.14.30.2220dd82nuirRU&id=626297555950&ns=1&abbucket=2#detail
/ {5 A8 y( F9 Z" C
6 D1 Z! `& x* S4 ^$ G+ b8 ^7 U這是大蒜分瓣機。9 ~" a8 z. N) K5 _1 Y' w
154#
 樓主| 發表于 2021-2-5 19:24:34 | 只看該作者
大白小白 發表于 2020-11-22 21:23
" d% N- [* X; b3 H5 u在圖片上注釋,沒看懂啥意思

6 s! r$ i0 X" O5 p  o) [: `0 X* @. F9 }$ M, z3 t5 u% F
帶有塊狀的根部,大蒜剝好之后是沒有這個的。1 o2 j' e. f" c5 e

本帖子中包含更多資源

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

×

點評

這個根部如果剝離的話,在蒜瓣底部會形成一個火山口樣的形態,如果能做激光三維,這倒是一個切入點,關鍵是激光三維傳感器太貴了!!!一個十幾萬!!!!加上他們給的程序就27萬!我想自己開發算了。  發表于 2021-2-5 22:55
155#
發表于 2021-2-5 19:29:10 | 只看該作者
awolfbee 發表于 2021-2-5 19:24  I3 W' [. E: t' R" r
帶有塊狀的根部,大蒜剝好之后是沒有這個的。
( Q6 c; ?! I  F! S
老大放假了?
: ~/ \- S  ?2 j0 N

點評

沒有,要到29才放假,放假也閑不著,孩子搶電腦看旺旺隊,唉……  發表于 2021-2-5 22:53
156#
 樓主| 發表于 2021-2-11 00:34:34 | 只看該作者
今天,哦不, 是昨天開始放假,上午上班的時候看了一個關于單攝像頭加線狀激光發射器旋轉配合OPENCV形成立體圖的文章,對激光三維照相有了一點了解。之所以考慮這樣的方式,是因為這幾天一直在思考如何從大蒜的側面的形狀判斷哪邊是頭或者尾,問題在于誤判率太高。所以還是回到檢測頭和尾的形狀特征上來。之前考慮的是接觸式的檢測方式,當時有考慮用點陣壓力傳感器測量蒜頭和蒜尾的接觸壓力,如果壓力是環形,則是尾(實際上也不一定,因為有根的存在就會誤判),如果壓力為點狀,則為蒜尖。但是從耐久性來考慮,還是非接觸式的為好,這樣看來,非激光立體照相不可了。
157#
 樓主| 發表于 2021-2-16 23:18:15 | 只看該作者
http://www.csksoft.net/blog/post/lowcost_3d_laser_ranger_1.html; U8 n+ R! {- w4 {0 T  I: }% p
) f3 c1 A+ L  v0 x$ R/ k
這是一個激光三維成像的帖子,在其中得到不少啟發。. x1 m8 {$ ~. F1 v  B  w- p3 X: M9 ]
( C9 g- M' Y1 U
如果能對蒜瓣的頭尾進行三維掃描,獲得立體的圖像,則可以對圖像進行分析,確定頭尾,這比用基恩士的要劃算多了,而且這個掃描面積很小,估計就是10*10個mm。
158#
 樓主| 發表于 2021-2-16 23:19:31 | 只看該作者
利用廢舊光驅上的鏡頭,在之前的攝像頭上增加一個透鏡,調節焦距,形成一個小的電子顯微鏡,這是大蒜的底部照片。
: S9 L: {- F- v4 q% a
8 r- A' E# f$ `! u2 @
. f& m2 _# z- s8 z" v這個嘛,猜猜?( f' ?% D" {5 m9 u! X' y0 I: V5 S

本帖子中包含更多資源

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

×
159#
 樓主| 發表于 2021-2-16 23:22:53 | 只看該作者
老年手機的鍵盤,B-189,保密手機。
6 B5 Y" o9 j! X( F
- y% K8 ^- s: y, z3 h' l, J可以非常清晰地看到手指的指紋。
160#
發表于 2021-2-18 16:21:16 | 只看該作者
@awolfbee 試試另一個思路,做光的反射和散射對比,從而判斷首尾。  o, U  y0 @2 @: E/ C

點評

謝謝,可以試試看。  發表于 2021-2-18 18:32

評分

參與人數 1威望 +1 收起 理由
大白小白 + 1 新年好!

查看全部評分

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

本版積分規則

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

GMT+8, 2025-8-19 22:14 , Processed in 0.076551 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表