我想检测和裁剪照片出来的是空白页,在使用AForge未知的随机位置,文章下面这里
我从谷歌图片下载了一张护照照片,然后卡在白纸上:
AForge完成了工作,然而,有一个我无法弄清楚的问题; 照片被裁剪错了.
以下是处理后裁剪照片的外观:
你注意到照片的白边吗?好像照片倾斜,两侧留下空白区域.
不仅AForge不承认这张照片的四边形是一个矩形,但它也错了.
这是我从文章中获取并调整裁剪的代码:
Bitmap bitmap = AForge.Imaging.Image.Clone(bmp, PixelFormat.Format24bppRgb);
BitmapData bitmapData = bitmap.LockBits(
new Rectangle(0, 0, bitmap.Width, bitmap.Height),
ImageLockMode.ReadWrite, bitmap.PixelFormat);
Invert invertFilter = new Invert();
invertFilter.ApplyInPlace(bitmapData);
BlobCounter blobCounter = new BlobCounter();
blobCounter.FilterBlobs = true;
blobCounter.MinHeight = 50;
blobCounter.MinWidth = 50;
blobCounter.MaxHeight = 1500;
blobCounter.MaxWidth = 1500;
blobCounter.ProcessImage(bitmapData);
Blob[] blobs = blobCounter.GetObjectsInformation();
bitmap.UnlockBits(bitmapData);
if (blobs.Length == 1)
{
List<IntPoint> corners;
List<IntPoint> edgePoints = blobCounter.GetBlobsEdgePoints(blobs[0]);
SimpleShapeChecker shapeChecker = new SimpleShapeChecker();
if (shapeChecker.IsConvexPolygon(edgePoints, out corners))
{
if (corners.Count …Run Code Online (Sandbox Code Playgroud) 我正在编写一个小应用程序,除了其他功能外,还可以在键入时将快捷方式扩展为全文.例如:用户在某处写"BNN"并按下相关的键盘组合,应用程序将用"Hi I am Banana"替换"BNN".
经过一些研究,我了解到它可以使用user32.dll,完成这项任务的过程如下:
1)获取活动窗口句柄
2)获取活动窗口线程句柄
3)将输入连接到活动线程
4)获得聚焦控制句柄(+插入位置但不是问题)
5)从活动线程分离输入
6)得到来自聚焦控件的文本使用其句柄
这是我目前的代码:
try
{
IntPtr activeWindowHandle = GetForegroundWindow();
IntPtr activeWindowThread = GetWindowThreadProcessId(activeWindowHandle, IntPtr.Zero);
IntPtr thisWindowThread = GetWindowThreadProcessId(this.Handle, IntPtr.Zero);
AttachThreadInput(activeWindowThread, thisWindowThread, true);
IntPtr focusedControlHandle = GetFocus();
AttachThreadInput(activeWindowThread, thisWindowThread, false);
if (focusedControlHandle != IntPtr.Zero)
{
TB_Output.Text += focusedControlHandle + " , " + GetText(focusedControlHandle) + Environment.NewLine;
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
//...
//...
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
internal static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll", CharSet …Run Code Online (Sandbox Code Playgroud) 在document.ready事件中,我有一个函数收集具有属性“wordNum”的 html 控件,我发出一个 AJAX 请求,该请求返回每个控件的一些描述,然后我使用innerhtml返回的描述设置这些控件及其属性。
问题是,如果用户单击后退按钮,这个功能当然不会执行,但我需要它。
代码:
$(document).ready(function () {
Translate();
});
function Translate() {
var list = new Array();
$("*[wordNum]").each(function () {
var endRes = {
ControllerName: this.id,
WordNumber: this.getAttribute("wordNum")
};
list.push(endRes);
});
jQuery.ajax({
url: ' @Url.Action("Translate")',
contentType: "application/json",
dataType: "json",
data: {
List: JSON.stringify(list)
},
traditional: true,
}).done(function (data) {
$.each(data, function (key, val) {
$("*[wordNum]").each(function () {
if (this.id == val.ControllerName) {
this.innerHTML = val.Description;
}
});
});
});
}
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能使后退按钮单击再次执行此功能Translate。
我的代码需要您的建议.首先,我展示代码:
$('tr:gt(9)').hide();
$('button.btn-primary').on('click', function() {
var visible = $('tr:visible').length;
$('tr:gt('+visible+')').slice(0,5).show();
})Run Code Online (Sandbox Code Playgroud)
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Producent</th>
<th>Produkt</th>
<th>Foto</th>
<th>Typ</th>
<th>Cena netto</th>
<th>Cena brutto</th>
<th>Interface</th>
<th>Ilo?? dysków</th>
<th>Pojemno??</th>
<th>RAID</th>
<th>Wydajno??</th>
<th>Opis</th>
<th>Specyfikacja</th>
<th>Zakup</th>
</tr>
</thead>
<tbody class="results">
<tr><td>G-Tech</td><td>vcxv</td><td><img src="admin/forms/temp/" style = "width:50px;height:50px;" alt="BRAK ZDJ?CIA"/></td><td>DAS Direct Attached Storage</td><td>50.00</td><td>70.00</td><td>USB 3.0</td><td>5</td><td>400</td><td>5*5*</td><td>500</td><td>dsadsad</td><td style='display:none;'>1</td><td><a href=http://www.o2.pl target='_blank'>Specyfikacja producenta</a></td><td><form action='' method='POST'>
<input type='hidden' name='id' value='34' />
<input class='btn btn-primary btn-sm' type='submit' name='koszykAdd' value='Dodaj do koszyka'/></form></td></tr><tr><td>LaCie</td><td>Macierz</td><td><img src="admin/forms/temp/depositphotos_12071772-Website-Development-PHP-HTML-Arrows.jpg" style = "width:50px;height:50px;" alt="BRAK ZDJ?CIA"/></td><td>SAN Srorage Area Network</td><td>98.00</td><td>120.00</td><td>miniSAS</td><td>6</td><td>4 TB</td><td>5</td><td>Du?a</td><td>Tu powinien …Run Code Online (Sandbox Code Playgroud)据我所知,JavaScript中的对象是通过引用而不是值复制的.但是我写的下面的代码没有按预期工作.也许我不知道正确的行为.请提供见解和可能的解决方案,以避免这种情况.
我的代码:
var a = {
obj:{u:1,v:2,w:3},
setobj:function(objj){
this.obj = objj
}
};
var b = a;
var m = b.obj
console.log(m);
Run Code Online (Sandbox Code Playgroud)
它打印 - {u:1,v:2,w:3},
然后-
var c = a;
c.setobj({x:4,y:5});
console.log(c.obj); //prints {x:4,y:5}
console.log(a.obj); //prints {x:4,y:5}
console.log(b.obj); //prints {x:4,y:5}
Run Code Online (Sandbox Code Playgroud)
但:
console.log(m); //prints {u:1,v:2,w:3}
Run Code Online (Sandbox Code Playgroud)
我期待m包含b.obj的引用,其中b包含a的引用.后者正在工作,但前者(m的参考)不起作用.请提供一个洞察力,告诉我我错过了什么.这是我的非常愚蠢的假设还是有些我不知道的事情?
如何将成功函数返回的数据存储到全局变量中。
$("form").on("submit", function () {
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "ajax2.php",
data: data,
success: function (data) {
//How to store the above data into a global variable?
$("#main_content").slideUp("normal", function () {
for (i = 0; i < data.length; i++) {
$(".the-return").append("<div class='inside_return'>Name:"
+ data[i].name + "<br/>Id:"
+ data[i].id + "<br/>Pricing:"
+ data[i].rate + "<br/>Postcode:"
+ data[i].postcode + "<br/>Reputation:"
+ data[i].reputation + "<br/>Review Plus:"
+ data[i].plus …Run Code Online (Sandbox Code Playgroud)