Arama butonu
2
Cevap
809
Tıklama
0
Öne Çıkarma
C# ile siyah beyaz resmin x,y, kordinatlarını çıkartıp yazdırma
M
6 yıl
Onbaşı
Konu Sahibi

Arkadaşlar amacım vektörel yada normal bir resmin içinden kordinatlarını aldırıp gcode a dönüştürüp dosya olarak kaydetmek, benzerini yapan bir sürü program var ama ben kendim bir tane yapmak istiyorum kendim için mini cnc router ve lazer markalama makinem için ben makine mühendisiyim birazda programlama bilgim var yok değil ama tam bu konuda bi kaynak bulamadım elbet vardır ama ben bulamadım yardımcı olabilcek varsa çok mutlu olurum.

Yapmak istediğim şey programa resmi atıcam yada autocad dosyasını ve içindeki beyaz yüzeye siyah olan o siyah çizgilerin kordinatını çıkarıcak bana text olarak vericek yani basit bir cnc programı gibi düşünün yapabilirsemde bi tık ilerisi lasergrbl diye bir program var öyle bir program yapmak nedemek istediğimi o programa bakarakta anlıyabilirsiniz.

Bana hazır kaynak verin demiyorum nelere bakmamlzım ne olarak aratırsam sonuca ulaşabilirim yani yol gösterseniz dahi çok mutlu olurum. Lütfen eleştirmeyin kendimi geliştirmek ve bu konuda bi hobi edinemk istiyorum size çok saçma geldiyse cevap vermiyebilirsiniz teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
6 yıl
Yarbay

al yazdım birtane siyah beyaz bitmap resmi yükle basit birşey yükle listbox doldurması uzun sürüyor çok büyük resimlerde
https://s2.dosya.tc/server10/8o2q42/sb.rar.html


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace sb
{

public partial class MainForm : Form
{
static List<Point> koordinatlar = new List< Point >();
public static List<Point> SiyahBeyazKoordinatAl( Bitmap bitmap)
{
unsafe
{
koordinatlar.Clear();
BitmapData bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat);

var bytesPerPixel = Image.GetPixelFormatSize(bitmap.PixelFormat) / 8;
var heightInPixels = bitmapData.Height;
var widthInBytes = bitmapData.Width * bytesPerPixel;
var PtrFirstPixel = (byte*)bitmapData.Scan0;

for (int y = 0; y < heightInPixels; y++)
{
byte* currentLine = PtrFirstPixel + (y * bitmapData.Stride);
for (int x = 0; x < widthInBytes; x += bytesPerPixel)
{
int oldBlue = currentLine[x];
int oldGreen = currentLine[x + 1];
int oldRed = currentLine[x + 2];

if (oldBlue==0 && oldGreen==0 && oldRed==0) {
koordinatlar.Add(new Point(x/4, y));
}

}
}
bitmap.UnlockBits(bitmapData);
}
return koordinatlar;
}


public MainForm()
{

InitializeComponent();

}
void Button1Click(object sender, EventArgs e)
{
listBox1.DataSource = null;
listBox1.DataSource = SiyahBeyazKoordinatAl(new Bitmap(pictureBox1.Image));

}
void Button2Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog()==DialogResult.OK) {
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}

}
}
}






< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 26 Temmuz 2019; 18:23:42 >

R
6 yıl
Binbaşı

Resim için arama anahtar kelimesi olarak "raster to gcode" olarak arama yapın. Faydalanabileceğiniz kaynaklara ulaşacaksınız. Birkaç tane github projesi gözüme çarptı. Belki fikir verebilir.





< Bu mesaj bu kişi tarafından değiştirildi rafet32 -- 1 Ağustos 2019; 17:33:18 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.