国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: awolfbee

開始設計一種大蒜播種機

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

- Z8 y. V6 }6 L剝掉蒜皮后的輪廓圖。最后一副圖樣有點奇怪,生成的輪廓曲線連貫且平滑,也就是重新生成了下然后就變成這樣了,不知道程序上有哪些變動。- A2 a* p, D; t6 l( i

本帖子中包含更多資源

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

×

點評

這一次購買的大蒜品種有點奇怪,蒜瓣都是鼓肚子的,不像之前購買的那種,輪廓圖都是和月牙一樣。看來這個蒜的種類是很講究的,要注意了。  發表于 2021-2-2 22:37
肉眼能看得出哪邊是蒜尾,哪邊是蒜尖嗎?如果人眼都分辨不出來的話,機器估計也無能為力了。  發表于 2021-2-2 22:36
152#
 樓主| 發表于 2021-2-2 22:39:23 | 只看該作者
程序如下:
$ W' V6 U3 c: i# z/ f
+ {3 F9 T) S# W' c7 L& }" ]操作系統: win7 64位# k! n- K; ~; s. u8 K, ~" b+ e
IDE:VC++2010旗艦版
: o3 R- N" A1 d, Q視覺軟件: OPENCV 3.0
/ r% w: F/ ~( N# P+ [+ ?0 H
* ?  z  h' |5 d& ]0 [. x9 e$ A* w
//#include "stdafx.h"% X, c- F7 P. f; N
#include "core/core.hpp"
7 V/ C( |0 \7 K3 |$ B( ?- S#include <opencv2/imgproc/imgproc.hpp>
9 V- H+ j  }5 z& Y" L  G#include <opencv2/highgui/highgui.hpp>! ]3 Y6 B/ h) e6 w8 C
#include <iostream>' C+ \: c. R# [. k  \
#include "highgui.h"" t/ R9 b/ o! u  C8 M
#include <set>
- b1 n& H$ B6 d+ R/ {0 b$ h8 C. G#include <opencv2\opencv.hpp>: T) Q) Z. ?* N' L# @  }# X7 ^
#include<vector>     //包含所需要的類文件vector,還有一定要加上using namespace std。; S% E  b' k/ Q, x
#include <stdio.h>
7 E" z( ?3 S7 ^$ }, d0 v9 P#include <conio.h># y4 O9 e) a  ~
#include <opencv2/highgui/highgui_c.h>  w. }- J: f: j
#include <math.h>4 c3 y0 |% j) h
#include "iostream"9 D4 B3 r6 X4 g( S
#include "cv.h"+ M8 d1 I# V7 e; I* [0 |3 c# v
#include "highgui.h"8 H  S2 |& u8 h( q! s+ K5 }
using namespace std;# K& |9 Q% H' X2 O: ?
using namespace cv;
, b  M7 X1 ?0 G5 k) c
4 o) r/ f+ i# O# p0 |
. |7 C& z. ~, U/ v6 O* K
# d/ ~+ O* |: v, `3 }//-----------------------------------【main( )函數】--------------------------------------------# S1 g' w3 L* ~) \$ c
//     描述:控制臺應用程序的入口函數,我們的程序從這里開始' l7 V; e9 r3 G0 X) _; O
//-------------------------------------------------------------------------------------------------
2 }$ \, _2 t  w7 g2 d; {
: I- s7 @. w3 |, iint main()# K6 g4 p% ]1 P* D& R

0 n8 `  O6 t7 P* C9 Z- c& j{" n5 {% t. N9 }9 B+ N
int chufa=1;- D% U4 o+ o  ^! {! L+ t
    //【1】從攝像頭讀入視頻; |5 u1 E9 v, j' c" |

2 X, T- n3 G4 C  T" R: e8 Q    VideoCapture capture(0);! W% f9 t6 }6 Y& d" k

% x) h7 k5 ~0 n    Mat edges;   //定義類. `9 c( C/ H- S; \8 I3 `! ~7 V3 P& v/ y5 _
$ g, c$ n/ S* K: c2 J5 g0 T% A5 p
namedWindow("預處理后的視頻", 0);" h! n3 x- [7 r; t: I% V

; e4 ~* H- \  d //   Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項至于循環之外,不要重復定義Mat,增快速度;
5 l& u" {- X7 n4 _- ^1 _7 _: `5 y- b1 F: K
//定義輪廓和層次結構(這個不是很理解)
% z/ j1 t( V9 X0 A- Z9 J) f9 e$ C7 L: h' `. i
//vector<vector<Point>>contours;  //其中contours 應該是一個變量,可以用在后面的輪廓查找的函數中,定義點的向量
% B! Y. O1 `- Z6 z* a- D2 M, k: L0 D: V3 d% f. O) q+ C/ a
//vector<Vec4i>hierarchy;    //定義四維向量???
% l; M7 m5 _$ G6 ?) J9 G  m& v+ O
//【2】循環顯示每一幀" Q# s& P- ^6 `7 j. A0 U( T

/ w9 a/ ~7 x5 b0 A& |    while (1)
* g' n" z( l/ Z+ [+ X$ a) f' E9 U) P4 s6 Q
    {% p. k: d$ y! s3 u# u- |

) C3 q& j1 W0 h% a        //讀入圖像+ A4 B# m) s; k% g% n4 [

  \2 J4 l2 d8 d* M9 a3 S           Mat frame;  //定義一個Mat變量,用于存儲每一幀的圖像,將該項至于循環之外,不要重復定義Mat,增快速度;
8 p3 B0 g  i+ M7 C3 ]2 b, y0 T) p& }3 f) I" a. I6 p
           if (chufa=1) //當取樣信號為1時,開始取當前幀,然后進行識別: c+ U- S/ m) ~3 K
9 r" Y2 q. A& T6 s* W
                        {
1 z0 V4 n! i0 P  s) z+ H9 `2 J: A- s' d
                          capture >> frame;                                              //讀取當前幀,videocapture函數是不斷讀取外界的視頻,需要一個類來讀取當前幀,
9 R9 |* b; a7 D# J* @2 V                                                  chufa=0;
1 @& q; k! E& i; U7 c" ?  P; H# T3 |$ T& w; m: N( |
                                                                                                  //對于只需要一副圖片來進行檢測的操作來說,每個循環只要出發某個取樣信號,取樣一次就好了。因此用IF語句! K' A8 m, d0 x, V4 R  a

8 \! I$ Z, [+ {( D# e  U5 p                           cvtColor(frame, edges, CV_BGR2GRAY);      //灰度化  --如果說需要使用顏色檢測蒜瓣的底部和頭部,可能還需要顏色來判斷) O' E3 C% ]9 A, Y8 J( i- j3 z% b

, S, b4 T% e7 y: A                          threshold(edges, edges, 120, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);         //二值化,將其變成黑白兩色的圖樣
2 i; u2 E* f, c- ?6 K8 b8 e7 j) x3 \" O, U" K3 Q0 D
                          blur(edges, edges, Size(3, 3));                           //進行模糊,使用3*3內核來降噪/ W% x$ J8 q% l- N0 y' F' n& q
8 U  o$ Y& ?4 q  }* {
                         Canny(edges, edges, 0, 30, 3);                            //進行canny邊緣檢測并顯示
7 c( i$ A, a% P: K% L  w* d, O" I0 `
                       // findContours (edges, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);           //要求原圖像為8位單通道圖像;其中edges是源文件,contours是輪廓函數??
0 ^6 ]. x9 s* s- D% V" n0 v3 w+ \! Q1 z1 f# q7 j8 U3 K
                                                                                                                                                                                      //CV_RETR_EXTERNAL,僅需要外側的輪廓用于識別,
+ g7 W; ^5 m; L! j
& S: A: H+ v+ {+ e8 Q2 \                                                                                                                                                                                      //CV_CHAIN_APPROX_NONE,獲取每個輪廓的每個像素,最好是連續的,  s4 n( a& s- E+ T
+ K) t* L& x! S8 e% R9 Q) e
                       }, o+ I2 v, h: ~8 O/ r4 x
+ E. r: ?+ i6 n# `: u
        imshow("蒜瓣輪廓圖", edges);                        //顯示當前幀( D! y2 F& I/ {. m/ k6 |
0 _0 S, x/ L1 i  F8 A
        if (waitKey(30) >= 0)- u% v/ |; @& v& D

: @$ H0 B, c7 p# n, ^* B            break;# C$ v. E8 \8 v3 t% }7 D
, _$ P2 P' w3 H( O% s  V& t0 D* U

% z; N+ {) [  i6 g4 S
* l% R0 `% ^( p  i* j1 u) i' Z    }( \- x' m' E3 i* Z3 w9 M+ v
: N3 F3 p0 h' J3 u# K/ D/ Z8 {4 C
    return 0;5 O3 C6 I" c" T
5 ?8 M% J* k: w6 w) X
}
153#
 樓主| 發表于 2021-2-5 19:21:52 | 只看該作者
大白小白 發表于 2020-11-18 13:143 e( \3 H3 j) U* {) Y; F7 z$ v* [* c$ t
@awolfbee 蒜頭壓碎成蒜瓣,有視頻么?四處紛飛?能不能溫柔點?
) ~( Z) K& Y1 c  B9 e9 G0 Q# O
https://item.taobao.com/item.htm?spm=a230r.1.14.30.2220dd82nuirRU&id=626297555950&ns=1&abbucket=2#detail$ t( U  r- N, o2 j
0 @* H& ?6 c) S( w) _' [
這是大蒜分瓣機。
) c! f* U! Z' G0 G' b
154#
 樓主| 發表于 2021-2-5 19:24:34 | 只看該作者
大白小白 發表于 2020-11-22 21:23
, o7 m- i1 o( ~8 f9 e- Q在圖片上注釋,沒看懂啥意思
( H: r( W/ Q) w  Z
- k, o  P0 ?; U$ L. D: Q3 s( h" C# z
帶有塊狀的根部,大蒜剝好之后是沒有這個的。
5 }6 I0 e1 S+ g/ T/ _- c: Y

本帖子中包含更多資源

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

×

點評

這個根部如果剝離的話,在蒜瓣底部會形成一個火山口樣的形態,如果能做激光三維,這倒是一個切入點,關鍵是激光三維傳感器太貴了!!!一個十幾萬!!!!加上他們給的程序就27萬!我想自己開發算了。  發表于 2021-2-5 22:55
155#
發表于 2021-2-5 19:29:10 | 只看該作者
awolfbee 發表于 2021-2-5 19:24
. b' z4 E  f0 ]& ]0 D帶有塊狀的根部,大蒜剝好之后是沒有這個的。
0 C8 _1 P. P' L2 G
老大放假了?
* V5 Q9 v  J) R" i$ o% o2 q- 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/ b3 `; ?  N# Y4 I
' c6 S3 D* W4 Q/ p' |- _" [
這是一個激光三維成像的帖子,在其中得到不少啟發。
* w  b9 w! b& u& {$ b/ v: M
' [4 ^0 i* F. k- S: P如果能對蒜瓣的頭尾進行三維掃描,獲得立體的圖像,則可以對圖像進行分析,確定頭尾,這比用基恩士的要劃算多了,而且這個掃描面積很小,估計就是10*10個mm。
158#
 樓主| 發表于 2021-2-16 23:19:31 | 只看該作者
利用廢舊光驅上的鏡頭,在之前的攝像頭上增加一個透鏡,調節焦距,形成一個小的電子顯微鏡,這是大蒜的底部照片。: }0 }  C0 p' b" a3 q; t
* G, E& F9 V% C- Z0 e

- a+ {- u/ D! v3 U這個嘛,猜猜?; K' W" q% @$ r7 d* Y# j4 A. P% p7 x

本帖子中包含更多資源

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

×
159#
 樓主| 發表于 2021-2-16 23:22:53 | 只看該作者
老年手機的鍵盤,B-189,保密手機。- Z5 V. j$ ^+ d  w
# c* L* Q3 J1 h
可以非常清晰地看到手指的指紋。
160#
發表于 2021-2-18 16:21:16 | 只看該作者
@awolfbee 試試另一個思路,做光的反射和散射對比,從而判斷首尾。
5 G& z' W# R# A4 K% g: t; y

點評

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

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2025-9-3 07:28 , Processed in 0.085327 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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