当前位置:网站首页>Wood extraction in Halcon
Wood extraction in Halcon
2022-07-07 01:16:00 【Ride the magic horse and ride the clouds】
requirement : Extract the wood section in the following figure and count
result :
Code :
* Read images
read_image(image,' The position of the picture in the computer ')
* Image to grayscale
rgb1_to_gray(image,grayimage)
* Threshold segmentation
threshold (grayimage, regions, 60, 255)
* Open operation
opening_rectangle1(regions,Cut,2,7)
* Break the disconnected area
connection(Cut,connectedregions)
* Area screening
select_shape (connectedregions, SelectedRegions, 'area', 'and', 391.24, 20056.3)
* Count the number of wood in the first part
count_obj(SelectedRegions,Number1)
* Area screening
select_shape (connectedregions, SelectedRegions1, 'area', 'and', 24334.9, 100000)
* Corrosion calculation
erosion_circle(SelectedRegions1,regionerosion1,7.5)
* Break the disconnected area
connection(regionerosion1,connectedregions1)
* Area screening
select_shape (connectedregions1, SelectedRegions2, 'area', 'and', 2707.36, 20000)
* Count the number of wood in the second part
count_obj(SelectedRegions2,Number2)
* Merge the first part and the second part
concat_obj(SelectedRegions,SelectedRegions2,objectsconcat)
* Count the total number of timber in the combined part
count_obj(objectsconcat,Number3)
The process :
- Use read_image command , Read the wood section picture into , Put it in Image variable .
2. Use rgb1_to_gray command , Convert color pictures into grayscale images .
3. Use threshold command , Separate the wood section from the background .
4. Use opening_rectangle1 Command to open .
5. Use connection Command to break the disconnected area .
notes : Visible from above , There is still a lot of wood sticking after the first shipment , Therefore, consider bonding the part ( Red and purple in the above figure ) With the non adhesive part ( Other colors ) Count separately , Then sum the two . As for why not do it step by step in the fourth step , By adjusting the opening_rectangle1 Operator related parameters will clearly segment all wood , The main reason is that after setting the parameters, the assembly will give the purple piece of wood in the upper right corner of the figure above “ corrosion ” excessive , It is impossible to distinguish between wood and noise ( As shown in the figure below ), The setting is too small to divide the wood perfectly , It's very inconvenient .
6. Use select_shape operator , Conduct the first screening of wood according to the area .
7、 Use count_obj operator , Count the number of timber in the first part as 15.
8、 adopt select_shape operator , Select the image of the second part of the wood according to the area .
9. adopt erosion_circle operator , Separate the Connected Wood .
10、 Use connection Break the disconnected area .
11、 Use select_shape operator , Filter and remove impurities according to the area characteristics .
12、 Use count_obj operator , Count the number of timber in the second part as 10.
13、 Combine the two .10+15 I.e. total timber .
14. About the total number of timber , Not necessarily in step 7、 step 12 Calculate twice and then sum , have access to count_obj Operator directly finds the total number of wood in the above figure , Either way .
边栏推荐
- Activereportsjs 3.1 Chinese version | | | activereportsjs 3.1 English version
- Neon Optimization: About Cross access and reverse cross access
- Openjudge noi 1.7 10: simple password
- [100 cases of JVM tuning practice] 04 - Method area tuning practice (Part 1)
- Come on, don't spread it out. Fashion cloud secretly takes you to collect "cloud" wool, and then secretly builds a personal website to be the king of scrolls, hehe
- table表格设置圆角
- 斗地主游戏的案例开发
- Meet in the middle
- Body mass index program, entry to write dead applet project
- Analysis of mutex principle in golang
猜你喜欢
Telerik UI 2022 R2 SP1 Retail-Not Crack
城联优品入股浩柏国际进军国际资本市场,已完成第一步
JTAG principle of arm bare board debugging
Transformation transformation operator
Activereportsjs 3.1 Chinese version | | | activereportsjs 3.1 English version
Dell笔记本周期性闪屏故障
[Niuke] b-complete square
如何管理分布式团队?
【JVM调优实战100例】05——方法区调优实战(下)
The MySQL database in Alibaba cloud was attacked, and finally the data was found
随机推荐
Receive user input, height BMI, BMI detection small business entry case
Dell Notebook Periodic Flash Screen Fault
动态规划思想《从入门到放弃》
Building a dream in the digital era, the Xi'an station of the city chain science and Technology Strategy Summit ended smoothly
Eventbus source code analysis
pyflink的安装和测试
c语言—数组
Part IV: STM32 interrupt control programming
Explain in detail the matrix normalization function normalize() of OpenCV [norm or value range of the scoped matrix (normalization)], and attach norm_ Example code in the case of minmax
NEON优化:关于交叉存取与反向交叉存取
Supersocket 1.6 creates a simple socket server with message length in the header
Part VI, STM32 pulse width modulation (PWM) programming
Telerik UI 2022 R2 SP1 Retail-Not Crack
Lldp compatible CDP function configuration
THREE.AxesHelper is not a constructor
Link sharing of STM32 development materials
Address information parsing in one line of code
第三方跳转网站 出现 405 Method Not Allowed
Mongodb client operation (mongorepository)
The MySQL database in Alibaba cloud was attacked, and finally the data was found