当前位置:网站首页>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 :

  1. 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 .

原网站

版权声明
本文为[Ride the magic horse and ride the clouds]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130930108303.html